int main()
{
char *str;
gets(str);
puts(str);
return 0;
}
这为什么错
int main()
{
char *str=NULL;
gets(str);
puts(str);
return 0;
}
这有咋错了
到底要怎样把读取的字符串地址传给字符指针呢
只能是字符数组吧,你char *str只能一开始赋初值,不能去用gets和puts对char *类型的数据进行操作吧,我是没这么用过😂
如果直接用char *str=NULL,gets存入这个str的时候因为没有规定长度,所以没有给这个str分配内存,可能会出现错误:“Program received signal SIGSEGV”,也就是访问的这个地址不在系统给你分配的范围内,改成下边两种方式都可以
char str[30];
char *str = (char *)malloc(30);