gpt4 book ai didi

C++ 无法理解的崩溃行为

转载 作者:行者123 更新时间:2023-12-02 02:43:05 24 4
gpt4 key购买 nike

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

这有效:

testa++;
testb++;

const char *t = "test";

if (t == "adoinfosidnoxucnviune")
{
}

这在 testb++ 崩溃:

testa++;

const char *t = "test";

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

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

最佳答案

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

使用strcmp或使用std::string

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

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

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

你初始化了testb吗?

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

关于C++ 无法理解的崩溃行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16627210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com