devxlogo

Two-dimensional array

Two-dimensional array

Question:
How can I dynamically declare a 2D array and pass it as a parameter to a function?Here’s an example of what I’m trying to do:

#include #include #include const SIZE = 50;void display (float myArray[][]){    for (int i = 0; i Here are the error codes I get:
cd /a/home/ce/ugrad/stinson/cs/354/temp/g++ -g array.cc -o array -lmarray.cc:8: pointer or reference to array of unknown bound in parm typearray.cc: In function `void display(float (*)[])’:array.cc:11: invalid use of array with unspecified boundsarray.cc: In function `int main(…)’:array.cc:18: assignment to `float *’ from `float (*)[50]’array.cc:22: invalid types `float[int]’ for array subscriptarray.cc:24: passing `float *’ as argument 1 of `display(float (*)[])’Compilation exited abnormally with code 1 at Thu Apr 17 10:13:41

Answer:
When using the array syntax, the compiler must always know the size of thearray that is being used; hence the error.The way to solve it is to define the display method as

void display (float myArray[][SIZE]);
or
void display (float **myArray);
Also, remember the display function must somehow be able to know howmany items were actually allocated in both cases.

In main() you are also assigining the return value from new float [SIZE][SIZE] to a float * this is an erroryou should make the type of myArray to float ** to correct this error.

devx-admin

Share the Post: