-1

所以我今天创建了这个dll,它无缘无故地崩溃了......

这有效:

testa++;
testb++;

const char *t = "test";

if (t == "adoinfosidnoxucnviune")
{
}

这在 testb++ 崩溃:

testa++;

const char *t = "test";

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

其中 testa 和 testb 是整数.. t 甚至不是与之比较的字符串,我不明白

4

1 回答 1

0

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

使用strcmp或使用std::string.

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

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

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

你初始化了testb吗?

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

于 2013-05-18T17:52:15.557 回答