an nen pointer speicherplatz hängen
-
Wenn ich ein Feld anlegen will, kann ich ja an nen doppelpointer (**pointer) ungefähr so mit malloc speicherplatz hängen:
int **pointer;
int hoehe = 20;
int breite = 20;
int i;pointer = malloc(hoehe*sizeof(int));
for (i=0;i<hoehe;i++){
pointer[i]=malloc(breite*sizeof(int));wie kann ich das ganze aber jetzt in ein unterprogramm schreiben, so dass ich dem dann nurnoch den pointer übergeben muss und der dann den speicher reserviert?
könnte mir das vielleicht jemand schnell schreiben?
-
einfach in eine Funktion packen und pointer zurückgeben?? Ansonsten nen Zeiger auf den int** übergeben:
void alloc(int*** p) { *p = malloc ... for ... (*p)[i] ... }
BTW ist dein code nicht ganz korrekt. Im ersten malloc allozierst du hoehe * sizeof(int) Bytes. Du willst darin aber nicht hoehe ints speichern, sondern soviele Zeiger auf int. Dh es muss besser heißen hoehe*sizeof(int*). Allerdings sind int und Zeiger oft gleich groß, so dass das noch(!) nichts ausmacht. Auf einem 64bit-Rechner klappt das nicht mehr.