Je veux créer un tableau de caractères char ** sur la pile. À l'heure actuelle, j'utilise, mais je me demande s'il y a une plus belle façon:Meilleure façon de créer un tampon char ** sur la pile?
char* buf[4];
char temp0[1024], temp1[1024], temp2[1024], temp3[1024];
buf[0] = temp0;
buf[1] = temp1;
buf[2] = temp2;
buf[3] = temp3;
EDIT: Pour être plus clair, je ne peux pas simplement utiliser char buf[4][1024]
. Une fonction qui attend un tableau de pointeurs char se bloquerait, car c'est un type de données fondamentalement différent. Voilà comment je créerais le tableau sur le tas:
char** buf = malloc(sizeof(char*) * 4);
for(int i = 0; i < 4; i++)
{
buf[i] = malloc(sizeof(char) * 1024);
}
Près d'un -1 pour l'utilisation inappropriée (ab) de 'enum' pour des constantes non énumérées, non-énumérées ... mais le reste de la réponse est bon. – Andrew