gpt4 book ai didi

c - 变量 'x' 周围的堆栈已损坏

转载 作者:太空宇宙 更新时间:2023-11-04 01:44:51 25 4
gpt4 key购买 nike

编写一个程序,要求用户输入七个整数。该程序必须使用数组来存储这些值。用户输入所有值后,程序必须打印出每个数组元素的内容在下面显示的样式中。最后,程序必须对七个元素求和并打印出结果总和。

我的程序完全按照预期的方式运行,但是,一旦完成,我就会收到“运行时检查失败 #2 - 变量‘整数’周围的堆栈已损坏”。我查看了我所有的笔记,但不明白为什么,如果这是非常基础的,我很抱歉,我只是在学习如何编程。

#include <stdio.h>

int main(void)
{
int integer[6];

printf("Please enter seven integers:\n");

printf("\nInput 1: ");
scanf("%d", &integer[0]);

printf("Input 2: ");
scanf("%d", &integer[1]);

printf("Input 3: ");
scanf("%d", &integer[2]);

printf("Input 4: ");
scanf("%d", &integer[3]);

printf("Input 5: ");
scanf("%d", &integer[4]);

printf("Input 6: ");
scanf("%d", &integer[5]);

printf("Input 7: ");
scanf("%d", &integer[6]);

printf("\nArray input was: { %d, %d, %d, %d, %d, %d, %d }\n", integer[0], integer[1], integer[2], integer[3], integer[4], integer[5], integer[6]);

int sum = integer[0] + integer[1] + integer[2] + integer[3] + integer[4] + integer[5] + integer[6];

printf("\nThe sum of the array elements is: %d", sum);

return 0;
}

因此输出符合预期,但我无法弄清楚为什么变量已损坏。

最佳答案

您的数组只有六 (6) 个元素,但您读取了七 (7) 个元素,因此破坏了分配数组之外的内存。将数组定义更改为:

int integer[7];

请记住,C 从零开始计数,而数组定义中括号中的数字是元素的数量,也就是数组的大小。因此 int integer[6] 的有效索引将是 0、1、2、3、4、5,包括 6。

关于c - 变量 'x' 周围的堆栈已损坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55699852/

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