一般是由于什么原因造成的呢?
还有一个问题,为什么到析构函数的时候就出错呢?:
The instruction at "0x77f0511e" referenced memory at "0xfffffff5". The memory could be "written".
弄的我只有new而没法delete
9 个解决方案
#1
可能是数组使用有问题,比如定义a[2],而在程序中使用了a[2]这就会出问题,c中数组从0开始编号,2是数组的大小。
#2
你访问数组超界了
#3
你析构的时候怎么delete的?
ar = new int[2];
delete []ar;
ar = new int[2];
delete []ar;
#4
你用new定义了一个指针或者指针数组,但是使用过程中你又给该指针赋了其它的指针值,这样使用和用delete是都会出现问题。用查找命令检查一下指针名称,看一看赋值情况。
#5
你的数组一定过界了,即使用的内存超过了所分配的内存,debug有一定的容错能力,所以程序还能正确运行
#6
If the result is not identical. Pay attention to the speed of your program running. For instance:
you called a random number in your program for several times, and the random number will be the same one number if you run it too fast.
you called a random number in your program for several times, and the random number will be the same one number if you run it too fast.
#7
1、仔细检查你用到的变量,包括局部变量,看看他们的初始值是否正确初始化
2、看看编译的优化选项,调节一下
2、看看编译的优化选项,调节一下
#8
我在编程时也遇到这种情况。这是由于VC++ debug时和release时调用的dll不一样。如果release时调用的是xxx.dll,则debug时调用的是xxxd.dll。实际上这两个dll的运行过程及结果并不完全一样
#9
先检查一下是不是指针有什么指的不对的地方,有没有进行初始化,如果用到了赋值语句,一定要注意内存拷贝时要拷贝的字节数一致,不然,会有操作失败,你也可以使用BoundChecker来检查一下,这个工具很好用了,特别对这种内存操作更有效
#1
可能是数组使用有问题,比如定义a[2],而在程序中使用了a[2]这就会出问题,c中数组从0开始编号,2是数组的大小。
#2
你访问数组超界了
#3
你析构的时候怎么delete的?
ar = new int[2];
delete []ar;
ar = new int[2];
delete []ar;
#4
你用new定义了一个指针或者指针数组,但是使用过程中你又给该指针赋了其它的指针值,这样使用和用delete是都会出现问题。用查找命令检查一下指针名称,看一看赋值情况。
#5
你的数组一定过界了,即使用的内存超过了所分配的内存,debug有一定的容错能力,所以程序还能正确运行
#6
If the result is not identical. Pay attention to the speed of your program running. For instance:
you called a random number in your program for several times, and the random number will be the same one number if you run it too fast.
you called a random number in your program for several times, and the random number will be the same one number if you run it too fast.
#7
1、仔细检查你用到的变量,包括局部变量,看看他们的初始值是否正确初始化
2、看看编译的优化选项,调节一下
2、看看编译的优化选项,调节一下
#8
我在编程时也遇到这种情况。这是由于VC++ debug时和release时调用的dll不一样。如果release时调用的是xxx.dll,则debug时调用的是xxxd.dll。实际上这两个dll的运行过程及结果并不完全一样
#9
先检查一下是不是指针有什么指的不对的地方,有没有进行初始化,如果用到了赋值语句,一定要注意内存拷贝时要拷贝的字节数一致,不然,会有操作失败,你也可以使用BoundChecker来检查一下,这个工具很好用了,特别对这种内存操作更有效