char* str=NULL;//没有分配内存 scanf("%s",str);//这时候往哪里写呢?往非法内存写,当然出错了 编译的时候,没有检验str指向的内存是否合法,这个检验在执行的时候才做的 所以,编译可以通过,执行时非法内存访问
#include <stdio.h> int main() { char* str=(char*)malloc(50);//申请一段内存先 scanf("%s",str); printf("%s\n",str); return 0; }
33,311
社区成员
41,784
社区内容
加载中
试试用AI创作助手写篇文章吧