char *string;
scanf("%s",string);
printf("%s",string);

这个语句如果输入一个字符串比如是hello,为什么编译器显示的是NULL,

是不是因为没有初始化,应该如何初始化呢?如果就是想用指针来定义数组应该如何修改这个语句。谢谢!

Comments  

# yuanyuan 2021-12-07 23:13
可以用stdlib.h里面的malloc哦
char *string = malloc(sizeof(char) * 100);
// Your code
free(string);
malloc是让程序从heap内存里返回一个可用的地址,我记得数组定义法的底层实现就是这样
还要记得最后用free(),不然会内存泄漏。
# Moderator 2021-12-05 22:56
char *string;
只定义了一个字符指针啊
char string[100];
这样才是定义一个字符串,系统为字符串分配100字节的内存来保存字符串。

You have no rights to post comments