I don't truly understand some basic things in C like dynamically allocating array of arrays. I know you can do:
int **m;
in order to declare a 2 dimensional array (which subsequently would be allocated using some *alloc function). Also it can be "easily" accessed by doing *(*(m + line) + column)
. But how should I assign a value to an element from that array? Using gcc the following statement m[line][column] = 12;
fails with a segmentation fault.
Any article/docs will be appreciated. :-)
The m[line][column] = 12
syntax is ok (provided line
and column
are in range).
However, you didn't write the code you use to allocate it, so it's hard to get whether it is wrong or right. It should be something along the lines of
m = (int**)malloc(nlines * sizeof(int*));
for(i = 0; i < nlines; i++)
m[i] = (int*)malloc(ncolumns * sizeof(int));
Some side-notes: