c - 运行时检查失败 #2 - 变量“arr”周围的堆栈已损坏。发生了
问题描述
我对编码很陌生,所以我不确定为什么我在视觉工作室上遇到这个错误。调整数组功能在底部
int main()
{
int arr[7] = { 75,23,58,75,31,46,75 };
unsigned int i = 0;
printf("Unadjusted Array\n ");
for (i = 0; i < 7; i++)
{
printf("%d\t", arr[i]);
}
printf("\n");
printf("Adjusted Array\n");
AdjustArray(arr, 7);
for (i = 0; i < 7; i++)
{
printf("%d\t", arr[i]);
}
return 0;
}
void AdjustArray(int arr[], unsigned int size)
{
for (unsigned int i = 0; i < size ;i++)
{
arr[i]= 0;
i++;
arr[i] *= -1;
}
}
`
解决方案
在函数中,您在循环内AdjustArray
递增。i
for (unsigned int i = 0; i < size ;i++)
{
arr[i]= 0;
i++;
arr[i] *= -1;
}
在最后一个循环中,i==6
if 将通过条件i<size
,但该行i++
会将值i
设为 7。这超出了数组大小,并给出了错误。
推荐阅读
- java - 使用 Spring Boot 的 Log4j2 JDBC Appender“错误无法写入数据库”
- javascript - 为什么我的 Google Maps API 回调在前面的内联脚本之前执行?
- python - PandaSQLException:(sqlite3.OperationalError)没有这样的列错误与pandasql
- python-3.x - Python:如何创建一个日期时间数组,并在分箱前为数组中的每个索引提取对应的年、月、日、小时
- jquery - laravel jquery 计数表行追加自动递增 id
- swift - 从 FileMaker 复制/粘贴后出现奇数符号
- angular - 我如何从角度将本地存储值发送到服务器
- sandbox - 使用 gnu autoconf,有没有办法构建到沙箱中?
- git - GitLab 辅助地理代码推送失败,内部 API 无法访问
- jersey - Jersey 客户端 - 发布请求给出错误“Content-Type 标头必须是 application/vnd.api+json”