char *p[10];
定义的是十个指针,并没有空间。
char *p[4] = {"hhaahha", "afadf", "af", "adafd"};是正确的,因为他是赋初值啊,正如:
char *p = "haahahah";一样啊。你在你程序中的做法就如同这样:char *p; p = "hahahaha";所以错误,在你程序中,你定义一个二维数组就没事了。
给你附加点知识:scanf(“%s”,str);str一定要是一个数组的名,因为数组肯定是指定了空间了哦,你可以运行一下下面这个程序,我想结果肯定和你程序出现的错误一样
#include<stdio.h>
int main ()
{
char *p;
scanf("%s",p);
printf("result: %s\n", p);
}
定义的是十个指针,并没有空间。
char *p[4] = {"hhaahha", "afadf", "af", "adafd"};是正确的,因为他是赋初值啊,正如:
char *p = "haahahah";一样啊。你在你程序中的做法就如同这样:char *p; p = "hahahaha";所以错误,在你程序中,你定义一个二维数组就没事了。
给你附加点知识:scanf(“%s”,str);str一定要是一个数组的名,因为数组肯定是指定了空间了哦,你可以运行一下下面这个程序,我想结果肯定和你程序出现的错误一样
#include<stdio.h>
int main ()
{
char *p;
scanf("%s",p);
printf("result: %s\n", p);
}