2012-02-27 6 views
3

Pour ce que j'essaie de faire, j'ai besoin d'un tableau sous la forme char **. j'ai découvert que l'utilisation de ce qui suit crée un tableau dynamique qui se termine nécessitant 256 appels gratuits:Comment créer un tableau (semi) dynamique de caractères dans C

char** start = malloc(11*sizeof(char)); 
    for (i=0;i<256;i++) { 
    start[i] = malloc(11*sizeof(char)); 
} 
for (i=0;i<256;i++) { 
    free(start[i]); 
} 

Comment puis-je créer un tableau qui est sous la forme char[(malloc)][(12)] si cela fait sens ...

Répondre

4
char (*p)[12] = calloc(n, sizeof(*p)); // or malloc 

... 

free(p); 

p est un pointeur vers n tableaux, chacun de longueur 12.

+0

J'étais confus au premier abord par la façon dont la réponse différente avait l'air de char **, mais une fois que j'ai essayé exactement ce que vous suggérez, a fonctionné comme un charme. Merci –

+0

@ user1190885: Ah désolé, je n'ai pas remarqué que vous utilisiez 'char'! J'ai ajusté ma réponse de toute façon. –

Questions connexes