如何把读取的字符串传给指针

 

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);