Diese Frage aus zuvor gestellten Fragen von zwei Builds: C++ Passing a dynamicly allocated 2D array by reference & C - Pass by reference multidimensional array with known sizeVergeben Sie einen dynamischen 2d-Array, indem sie es auf eine andere Funktion als Verweise
Ich habe versucht, Speicher für ein 2D-Array zuweisen, die Antworten von diesen mit vorherige Fragen, aber der Speicher wurde nie zugewiesen und ich erhalte jedes Mal einen BAD_ACCESS Fehler, wenn ich versuche auf das Array zuzugreifen! Diese
ist, was ich habe:
const int rows = 10;
const int columns = 5;
void allocate_memory(char *** maze); //prototype
int main(int argc, char ** argv) {
char ** arr;
allocate_memory(&arr) //pass by reference to allocate memory
return 0;
}
void allocate_memory(char *** maze) {
int i;
maze = malloc(sizeof(char *) * rows);
for (i = 0; i < rows; ++i)
maze[i] = malloc(sizeof(char) * columns);
}
Kleiner Punkt belegen: Warum verwenden Sie '10' für die' malloc' Anruf, wenn Sie hast 'rows' definiert, die du unmittelbar danach benutzt? –
Bitte versuchen Sie nicht, ein [Drei-Sterne-Programmierer] (http://c2.com/cgi/wiki?ThreeStarProgrammer) zu sein. Abgesehen davon, dass C technisch nicht "per Referenz" weitergegeben wurde, kann man es nur emulieren *. –
War ein Tippfehler, ich habe es bereits behoben. Danke für die Benachrichtigung – Insty1956