|
楼主 |
发表于 2006-12-26 13:54
|
显示全部楼层
那么还是老问题,没有身请过的空间可不可以用?
这里看起来好像不可以用
但我在另外一张帖中看到
“无论分不分配,释不释放,任意内存都可以用
但如果没用malloc等内存管理函数来分配内存的话
就会造成读取时有奇怪的代码或写内存时会覆盖其他正在运行的程序
这样就是所谓的bug了”
和
“指针只是绝对的...你往哪指都可以...所谓不可用是因为, 超过你指针定义范围的地址可能为别变量代码程序的所使用, 如果你对这些地址进行操作, 将有可能对你的程序造成影响. 指针的使用不要超过自己所定义的范围,
例如, 在内存中开辟的连续空间int allocbuf[ALLOCSIZE], 而紧接着在int allocbuf[ALLOCSIZE]后面的地址是循环控制变量int i的地址. 这样, 当你指针来到从allocbuf+ALLOCSIZE去到i这里对i进行操作的话, 如果你不幸陷入了由这个i所控制的循环, 那么, 你的程序就很有可能会乱套. 这样, 就会出现所谓的Bug.”
好像是在说没有申请过的内存空间也可以用,只要不要影响到有用的数据 |
|