Comment initialiser des lignes d’un tableau 2D de chaînes en C

Je veux stocker des chaînes dans un tableau 2D à l’aide de pointeurs, mais je ne comprends pas comment le faire. Les exemples que j’ai vus utilisent uniquement des tableaux d’ints ou utilisent les crochets [] pour allouer une taille fixe de mémoire. J’essaie donc d’initialiser mon tableau 2D de chaînes et voici ce que j’ai:

char ** ssortingngArr = (char**)malloc(/*I don't know what goes here*/); for(i = 0; i < rows; i++) stringArr[i] = (char*)malloc(cols *sizeof(char)); 

Comme vous pouvez voir le paramètre de mon premier appel de malloc, je ne sais pas quoi mettre si je veux un nombre x de lignes exact, chaque ligne stockant une chaîne de caractères. Toute aide serait appréciée!

Faites ceci, car vous allouez un certain nombre de pointeurs:

 malloc(rows * sizeof(char*)) 

Vous voudrez utiliser le nombre de lignes.

 char ** ssortingngArr = malloc(rows * sizeof(char*)); 

De même, ne convertissez pas la valeur de retour d’un appel malloc ().

Utilisez sizeof *ptr * N

Notez que cette méthode utilise le type correct même si ssortingngArr était char ** ssortingngArr ou int ** ssortingngArr .

 ssortingngArr = malloc(sizeof *ssortingngArr * rows); for(i = 0; i < rows; i++) stringArr[i] = malloc(sizeof *(stringArr[i]) * cols);