你能告訴我我在這裏做錯了什麼?我在打印時沒有得到文字printf("%s\n",text[0]);
C中的字符串數組與malloc
我創建了char **text;
和malloc
ed所有指針。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char **text;
int main()
{
int i;
text = malloc(20000);
for(i=0; i < 20000; i++) {
text[i] = malloc(4);
memcpy(text[i], "test",4);
}
printf("%s\n",text[0]);
printf("%s\n",text[1]);
}
你的琴絃不以null結尾。 – nickb 2013-05-05 23:19:28
此外,malloc(20000)分配20000 *字節*,然後您試圖填充20000個字符指針(每個需要幾個字節,並相互覆蓋)。 – 2013-05-05 23:27:24
是的,我應該做這個文本= malloc(20000 * sizeof(char *)); – 2013-05-05 23:29:43