gpt4 book ai didi

c++ - 未知的C++错误: Fatal error: glibc detected an invalid stdio handle

转载 作者:行者123 更新时间:2023-12-03 08:44:01 27 4
gpt4 key购买 nike

我一直在Internet上进行搜索以尝试理解为什么会出现此错误,但是我只有在我不熟悉或从未使用过的代码的其他编程语言中看到过此错误。

我正在为学校分配一项快速排序程序,并且一切进展顺利,直到我决定将中位数气泡排序算法合并为一个辅助函数。

int* QS::MedianSort(int left, int middle, int right) {
cout << "starting MedianSort...\n";////////////
int temp;
static int sort [] = { left, middle, right };
do {
if (sort[0] <= sort[1] && sort[1] <= sort[2]) {
break;
}
else if (sort[1] < sort[0]) {
temp = sort[1];
sort[1] = sort[0];
sort[0] = temp;
}
else if (sort[2] < sort[1]) {
temp = sort[2];
sort[2] = sort[1];
sort[1] = temp;
}

} while(true);

cout << "...returning sort from Median Sort\n";//////////
return sort;
}

在我的分区算法中其实现的示例:

        int *temp;
int tempInt;

temp = MedianSort(*(array + left), *(array + pivotIndex), *(array + right));
*(array + left) = *(temp + 0);
*(array + pivotIndex) = *(temp + 1);
*(array + right) = *(temp + 2);

tempInt = *(array + pivotIndex);
*(array + pivotIndex) = *(array + left);
*(array + left) = tempInt;
array是指向我要快速排序的数组的指针, left是传递给分区函数的最小索引, right是最大的索引。

当我编译代码时,它没有问题,但是一旦运行可执行文件,我就会在控制台中收到此错误:

Fatal error: glibc detected an invalid stdio handle
Aborted

我不明白为什么,因为它以5中的第3个输入文件结尾,但是甚至没有启动第4个文件。 (我知道这一点是因为几乎每个函数的开头都有 cout语句,向我展示了它的作用。)

此外,到目前为止, main.cpp已成功浏览所有文件。

编辑:
我正在使用 -g -std=c++11进行编译

最佳答案

我认为这行有问题:

static int sort [] = .....

好像我理解正确,静态变量只会被初始化一次(第一次调用该函数)。

关于c++ - 未知的C++错误: Fatal error: glibc detected an invalid stdio handle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58928240/

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