CALLOC PARAMETER Dynamischen Array füllen und auslesen
-
Moin
Irgendwie komme ich mit folgendem Code nicht weiter. Ich will einen Speicherbereich dynamisch halten um beliebig viele Parameter auszuwerten. Dann will ich die Felder des Dyn Arrays füllen und wieder ausgeben. Was mache ich falsch.PS: Wie wandel ich String in Integer um?
DANKE DANKE DANKE
#include <stdio.h> /*Headerfiles einbinden*/ #include <stdlib.h> #include <string.h> #include <ctype.h> int main (int argc ,char *argv[]) { char i=0; char x; int *zahlen=NULL; /*Dyn. Array*/ int anzarg=0; anzarg = argc; while(i < anzarg) { zahlen = (int *)calloc((anzarg), sizeof(int)); /*Speicher reservieren Parameter mal 4 Byte*/ if (i > 0) printf("%s \n", argv[i]); x = *argv[i]; if ( (isdigit(x)) && (i > 0)) { *(zahlen + i) = *argv[i]; /*Array befüllen*/ printf("YES \n"); } else if (i > 0) printf("NO \n"); ++i; } for(i=0;i <= anzarg -1;i=i+1) printf("%d\n ", *(zahlen + i)); /Array Inhalt wieder ausgeben*/ free(zahlen); return 0; }
-
zu "X" siehe anderer Thread ...
x = *argv[i];
geht nicht x ist kein array
*(zahlen + i) = *argv[i];
du kannst keinen string in nen int array speichern
schau dir mal atoi() oder so an
das is das was mir so aufn ersten blick aufgefallen ist
-
while(i < anzarg) { zahlen = (int *)calloc((anzarg), sizeof(int)); ... } free(zahlen);
soll wohl...
while(i < anzarg) { zahlen = (int *)calloc((anzarg), sizeof(int)); ... } free(zahlen);
...sein
-
huch!!
meinte
zahlen = (int *)calloc((anzarg), sizeof(int)); while(i < anzarg) { ... } free(zahlen);
-
Der Cast vor calloc() sollte eigentlich gar nicht sein (außer man benutzt einen C++-Compiler).