我已经声明了一个包含 10 个指向字符的指针的数组。在 10 个中,我只初始化了 3 个。当我使用%s
以下命令打印数组时\n
,它给出的输出如下:
hi
hello
how
segmentation fault
但如果我不使用\n
,那么它会给出如下输出:
hihellohow(null)...(7 times).
有人可以解释一下吗?
代码 1
#include <stdio.h>
void main()
{
char *a[10] = {"hi", "hello", "how"};
int i = 0, j = 0;
a[0] = "hey";
for (i = 0;i < 10; i++)
printf("%s\n", a[i]);
}
代码 2
#include <stdio.h>
void main()
{
char *a[10] = {"hi", "hello", "how"};
int i = 0, j = 0;
a[0] = "hey";
for (i = 0;i < 10; i++)
printf("%s", a[i]);
}