继查询等我在此网站上发现,我想打印指针数组字符(串),通过使用**双指针如下:打印指针数组使用双指针
char *input=malloc(128), *color[7]={0}, **colors=malloc(8);
fgets(input, 128, stdin);
sscanf(input, "%s%s%s%s%s%s", &color[0], &color[1], &color[2], &color[3], &color[4], &color[5]);
color[6]=NULL;
colors=color;
while(*colors)
printf("%s ", colors++);
我从上面收到的输出似乎将每个输入字符串压缩到4个字节,然后溢出,如果它超过四个,因为如果我键入:“黑色红色金白色绿色蓝色”,例如,我收到:“bla red gold gold whit whit。。。。”“”“”。“非常令人沮丧。
我尝试解引用颜色++,就像我在其他示例中看到的一样,但是这会导致程序崩溃。最终,printf仅用于调试。这是char **(void)函数的一部分,我试图创建它来分配它正在尝试打印到char **类型的局部变量。我怎样才能解决这个问题?
'的malloc()'是不是魔术... – 2013-11-24 07:16:25
好,冬暖夏凉。并不是我曾经想过的。 – mosdellg
那么,你用它就好像是这样,所以... – 2013-11-24 07:28:45