i ve created two dimensional array inside a function, i want to return that array, and pass it somewhere to other function..
char *createBoard( ){ char board[16][10]; int j =0;int i = 0; for(i=0; i<16;i++){ for( j=0;j<10;j++){ board[i][j]=(char)201; } } return board; }
but this keeps giving me error
Yeah see what you are doing there is returning a pointer to a object (the array called
board) which was created on the stack. The array is destroyed when it goes out of scope so the pointer is no longer pointing to any valid object (a dangling pointer).You need to make sure that the array is allocated on the heap instead, using
new. The sanctified method to create a dynamically allocated array in modern C++ is to use something like thestd::vectorclass, although that’s more complicated here since you are trying to create a 2D array.