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