首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

非法内存访问的有关问题,求解

2013-02-24 
非法内存访问的问题,求解#include stdio.hint main(){ char* strNULL scanf(%s,str) printf(%s\n

非法内存访问的问题,求解
#include <stdio.h>
int main()
{
 char* str=NULL;
 scanf("%s",str);
 printf("%s\n",str);
 return 0;
}
以上编译时是没问题的,运行时显示非法内存访问,不知是什么原因。
[解决办法]
char* str=NULL;//没有分配内存
scanf("%s",str);//这时候往哪里写呢?往非法内存写,当然出错了
编译的时候,没有检验str指向的内存是否合法,这个检验在执行的时候才做的

所以,编译可以通过,执行时非法内存访问
[解决办法]
指针无所指。

[解决办法]
没有申请内存空间啊!
只是这个指针指向NULL。
[解决办法]

引用:
char* str=NULL;//没有分配内存
scanf("%s",str);//这时候往哪里写呢?往非法内存写,当然出错了
编译的时候,没有检验str指向的内存是否合法,这个检验在执行的时候才做的

所以,编译可以通过,执行时非法内存访问


已经说的很清楚了。
[解决办法]
当你仅仅定义一个指针事,系统是不为其分配内存的,

热点排行