debug 没有错,release出错
生活随笔
收集整理的這篇文章主要介紹了
debug 没有错,release出错
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. lib或者dll在debug模式下編譯,在release下調(diào)用會(huì)出錯(cuò)
2. 變量或者數(shù)組在debug模式下會(huì)初始化為0,在release下沒有初始化
3. 邊界問題。有時(shí)候在debug模式下,數(shù)組越界,也能運(yùn)行過去。例如
void func()
{
? ? char i;
? ? char buffer[10];
? ? char counter;
? ? strcpy(buffer, "abcdefghik"); // 11-byte copy, including NULL
}
在debug下,最后一個(gè)null要越界放入數(shù)組外,可能把NULL放入counter中
在release下,可能會(huì)把counter放在寄存器中,沒有空間讓NULL 放入
4. 在debug 下出錯(cuò),在release下沒有錯(cuò)
char *p;
? ? p = new char[10];
? ? memset(p+10,0,4);
? ? delete[] p;
debug有自動(dòng)檢測功能
總結(jié)
以上是生活随笔為你收集整理的debug 没有错,release出错的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 构建二叉堆时间复杂度的证明
- 下一篇: 在重复3次的数组中查找