Comment puis-je avoir un tableau 2D alloué dynamicment en C?

J’ai donc un programme avec une structure

typedef struct s_struct { int rows; int cols; char* two_d; //This is supposed to be the 2D array } *GRID; 

Je veux créer une mémoire frappée et allouer dynamicment à celle-ci et ensuite remplir le tableau 2D mais je ne sais pas comment. Voici ce que j’ai pour la fonction create (int prows, int pcols):

 GRID grid = malloc(sizeof(struct s_struct)); grid ->rows = prows; grid ->cols = pcols; grid ->two_d = malloc(sizeof(char) * (rows*cols)); 

Je ne comprends pas comment cela crée un tableau 2D si c’est le cas et comment je peux remplir le tableau.

cette ligne:

 grid ->two_d = malloc(sizeof(char) * (rows*cols)); 

alloue une grid / masortingce ‘continue en mémoire’ qui peut être référencée par:

 grid[row_offset][cols_offset] 

où ‘row_offset’ peut être 0 … (row-1)

où ‘cols_offset’ peut être 0 … (cols-1)

 note: 'sizeof(char)' is always 1, so including that phrase in the malloc parameter just clutters the code because '(1*something)' is always 'something' as the 1 has no effect. 

suggérez: supprimez le paramètre ‘sizeof (char)’ du paramètre malloc