2012-02-27 53 views
3

对于我所要做的,我需要一个形式为char **的数组。 我发现使用下面创建一个动态数组,最终需要256个免费电话:如何在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]); 
} 

如何创建一个数组,它是在形式char[(malloc)][(12)]如果是有道理的......

回答

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

... 

free(p); 

p是一个指向n阵列,每个长12

+0

我被这个答案从焦炭中**什么不同看着第一迷惑,但一旦我真的试过你的建议到底是什么,工作就像一个魅力的。谢谢 – 2012-02-27 23:41:11

+0

@ user1190885:对不起,我没有注意到你正在使用'char'!无论如何,我已经调整了我的答案。 – 2012-02-27 23:42:11