Array
-
Huhu!
Wie schaffe ich es, mit Hilfe einer Eingabe, einen Array zu definieren?
z.B.: Wie viele Elemente sollen's sein? Eingabe: 30 -> ein Array mit 30 Elementen wird erstellt.
Wer kann mir da helfen?
-
malloc()
-
malloc() bzw. calloc() zum erstmaligen reservieren von Speicher (Rückgabe überprüfen).
realloc() zum verändern der Größe des reservierten Speichers (Rückgabe überprüfen).
free() zum freigeben des reservierten Speichers wenn er nichtmehr gebraucht wird.
-
das geht so:
printf("Wie viele elemente wollen sie?\n> "); printf("lege speicher fuer den array im arbeitsspeicher an..."); arr=(char *)(malloc(anz*sizeof(char)));
undo ob alles glattgegangen is kannste folgendermaßen ueberpruefen:
if(NULL == arr){ printf("FEHLER\nprobieren sie es mit mehr RAM wieder\n"); }else{ printf("OK\n"); }//end if
-
--linuxuser-- schrieb:
arr=(char *)(malloc(anz*sizeof(char)));
Ist zwar so in etwa das 1000. Mal, aber egal:
Nicht casten
sizeof(char) ist _immer_ 1
-
man kann meinen code aber leicht auf ints oder anderes portieren ohne lange umschreiben zu muessen...
-
so etwa:
#define ARRAY(type, size) (type*)(malloc(size*sizeof(type)))
-
auch ne moeglichkeit...
-
ok, ich versuche es momentan mal ohne die "quasidynamische" definition eines arrays, jedoch will das heir einfach nicht richtig funktionieren:
int main(int argc, char *argv[]) { int Daten[100]; printf("Bitte Geben Sie die Daten fuer Gruppe 1 ein:\n>"); printf("Bla: "); scanf("%d", Daten[0]); printf("\nBlabla: "); scanf("%d", Daten[1]); }
Ist natürlich noch nicht alles
-
nicht so:
Jasper schrieb:
scanf("%d", Daten[0]);
sondern so:
scanf("%d", &Daten[0]);