gpt4 book ai didi

c - 为什么我在函数结束时收到错误?

转载 作者:行者123 更新时间:2023-11-30 20:58:39 25 4
gpt4 key购买 nike

我正在研究我的 C 教程。

我有这个功能:

void sortString(char c[][5], int size) {
char temp[] = "";

for (int i = 0; i < size - 1; i++)
{
for (int j = 0; j < size - 1; j++)
{
if (strcmp(c[j],c[j+1]) > 0) //arr + j
{
strcpy(temp, c[j]);// only strcpy, assignment not works
strcpy(c[j], c[j + 1]);
strcpy(c[j + 1], temp);
}
}
}
}

在外循环结束后和函数结束时,我收到此错误:

Run-Time Check Failure #2 - Stack around the variable 'temp' was corrupted. 

知道为什么我会收到上面的错误吗?

最佳答案

从您提到的代码中几乎没有观察到。首先,这里

char temp[] = "";

temp尺寸太小,无法容纳c[j] 。让它足够大,以便可以容纳 c[j] 。例如

char temp[5] = "";

其次,冒泡排序内for循环迭代不正确。而不是j < size - 1使用j < size - i-1 .

关于c - 为什么我在函数结束时收到错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50897415/

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