论坛首页 编程语言技术论坛

一个C语言指针问题

浏览 16419 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-27  
野指针本来就不可预料吧
0 请登录后投票
   发表时间:2011-06-27  
所有的指针都要初始化,没有初始值,也需要设NULL,不然后患无穷啊
0 请登录后投票
   发表时间:2011-06-28  
ray_linn 写道
2. t根本就是未分配的地址,这样的拷贝根本随编译器的开心在任一地址中乱写。 微软vc的保护函数在这一方面做出了改进,但是可惜没有成为标准,否则用strcpy_s就能预防这种情况。glibc就比较陈旧了。


讨厌的地方是总提示 strcpy deprecated ...
有时我就是想用 strcpy 啊 ...
0 请登录后投票
   发表时间:2011-06-28  
night_stalker 写道
ray_linn 写道
2. t根本就是未分配的地址,这样的拷贝根本随编译器的开心在任一地址中乱写。 微软vc的保护函数在这一方面做出了改进,但是可惜没有成为标准,否则用strcpy_s就能预防这种情况。glibc就比较陈旧了。


讨厌的地方是总提示 strcpy deprecated ...
有时我就是想用 strcpy 啊 ...



这个warning是可以屏蔽的吧,不过我还是会尽量用_s,至少可以防止缓冲区溢出。
0 请登录后投票
   发表时间:2011-06-29  
rokuan 写道
liusondark 写道
为什么我用VC++运行不了

不太清楚,vc我不太会用,还是比较习惯gcc编译,C Free用的比较顺手

lz有zb的嫌疑
0 请登录后投票
   发表时间:2011-06-29  
地狱牢笼 写道
rokuan 写道
liusondark 写道
为什么我用VC++运行不了

不太清楚,vc我不太会用,还是比较习惯gcc编译,C Free用的比较顺手

lz有zb的嫌疑
恭喜你,答对了
0 请登录后投票
   发表时间:2011-06-30   最后修改:2011-06-30
野指针,值是不可预测的。
不过由于函数堆栈是向上增加的。所以。

char x[]="abcde"
char *p;

打印p的值,很可能吧x的值打印出来了。

函数一开始为函数内部变量分配内存。
比如 上述,sp-7
那么p的地址是 ebp-4
x的地址是ebp-5
由于printf是顺序打印的所以会导致这个原因吧。。。

以上用IDA反汇编一下,可以清楚的看到。
0 请登录后投票
   发表时间:2011-06-30  
chimer 写道
野指针本来就不可预料吧


一些好的编程习惯可以避免野指针
0 请登录后投票
   发表时间:2011-06-30   最后修改:2011-06-30
学习和研究态度都不错,很有潜力,给你投个精华。
0 请登录后投票
   发表时间:2011-07-07  
做c的要是技术不扎实那是很危险的
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics