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有自动检测功能