c ++不可理解的崩溃行为

时间:2013-05-18 17:45:14

标签: c++ crash

所以我今天创造了这个dll并且它无缘无故地崩溃了......

这有效:

testa++;
testb++;

const char *t = "test";

if (t == "adoinfosidnoxucnviune")
{
}

这在testb ++崩溃:

testa++;

const char *t = "test";

if (t == "adoinfosidnoxucnviune")
{
    testb++;
}

testa和testb是整数 甚至连它与之相比的字符串,我都没有得到它

1 个答案:

答案 0 :(得分:0)

您正在比较指针,而不是指针指向的值。

使用strcmp或使用std::string

崩溃必须发生在其他地方。

因为您指向两个不同的对象,所以“if”语句中的代码不会执行,因为指针中的值不同。

在代码的某处,您正在测试testb的值。在第一个示例中,testb始终递增。在第二个示例中,testb不会递增。

您是否初始化了testb

说真的,当你单独使用调试器时,崩溃前执行的最后一行是什么?