经常在编程的时候发生下面的错误,转载几篇相关文章。
分析 1:
在退出程序时经常有内存不能"read"或内存不能"written"的时候。内存不能"read"意思
就是不能读取内存中的数据的意思造成这个错误的原因是没有给变量分配内存空间,而又
用到该变量造成的例:
1. voidmain()
2. {
3. int*pi;
4. inti;
5. i=*pi;
6. printf("%d",*pi);
7. *pi=103;
8. }
9. i=*pi;
10. printf("%d",*pi);
这 2 句都会造成程序的崩溃,因为并没有给 pi 分配能存储一个 int 变量的空间,所以一旦
用到 pi 的 int 值时造成程序的崩溃,但这个程序在编译是并不报错。
一样的道理内存不能"Written"是*pi=103;这句没有空间当然也不能把 103 这个值写到内
存里了。
1. voidmain()
2. {
3. int*pi;
4. inti;
5.
6. pi=newint;
7. *pi=11;
8.
9. deletepi;
10. deletepi;
11. }
12.
这样重复释放分配的内存空间也回出错这个错误是:Debug Assertion Failed!
但前面三种情况在 Release 版本里没有
1. voidmain()
2. {
评论1