gpt4 book ai didi

C++ 在运行时崩溃,但只是在某些时候

转载 作者:行者123 更新时间:2023-11-30 03:45:29 27 4
gpt4 key购买 nike

这是我的代码。当我运行某些时间时,它会像我预期的那样打印“1.5969”。大约三分之一的时间它说 .exe 文件已停止工作并且“Windows 正在寻找解决方案”类型错误。如果我不调用 test() 它会在 100% 的时间内工作。如果我在 test() 之后省略所有代码,但保留对 test() 的调用,则它在 100% 的时间内都有效。当代码按原样编写时,它可以工作大约三分之一的时间。这是为什么?

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int test(int* b, int* c){
++*c;
b[6] = 3;
return b[6];
}

int main(){
int* a;
int c = 1;
int* d = &c;
a = new int[5];
test(a, d);

char a_[] = "1.5969 1.68 1.88";
char* pEnd;
double d1;
d1 = strtod(a_,&pEnd);
cout << d1;
return 0;
}

最佳答案

test() 中的数组索引超出范围。分配的最大空间是 5 int 但访问第 7 个数字。这会导致未定义的行为。确保 test()b 的索引在 0 到 4 之间。

关于C++ 在运行时崩溃,但只是在某些时候,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34761397/

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