你能告诉我我在这里做错了什么?我在打印时没有得到文字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