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

关于指针的风险的一点疑问

2012-09-09 
关于指针的危险的一点疑问C++ primer plus 93页谈到指针的危险:long* fellow*fellow 223323这个赋值是

关于指针的危险的一点疑问
C++ primer plus 93页谈到指针的危险:
long* fellow;
*fellow = 223323;
这个赋值是危险的,原因是第二步有可能会修改计算机内存中有用的数值,那么如果要正常赋值的话,是需要先声明fellow呢,还是不仅要声明fellow还要给fellow赋值呢?

[解决办法]
C++ primer plus之所以说这段代码写法是危险的,愿意是在声明操作:long* fellow;语句中系统会为fellow随即赋值,意思就是这个指针会指向一个随即内存地址,假如随机指向的内存地址是系统使用的,接下来的赋值操作会改变该内存地址上的值并引发系统错误。建议写法:
long* fellow = NULL;
//分配内存操作
fellow = (long *)malloc(sizeof(long));
*fellow = 223323;
//使用变量fellow操作
.......

//释放内存(必须)
free(fellow);
fellow = NULL;

热点排行