Dev-C++编译报错:[Error] ld returned 1 exit status 求助
解决Dev-C++中[Error] ld returned 1 exit status的问题
你的代码触发错误的核心原因是数组越界访问:
- 定义的数组
dizi[9]仅能存储9个元素,合法索引范围是0到8 - 但循环条件
i<10会让循环执行10次,当i=9时,访问dizi[9]属于非法内存操作,最终导致链接器返回1状态码。
两种修复方案:
- 调整数组大小,让数组能容纳10个元素,匹配循环次数:
#include<stdio.h> int main(){ int dizi[10]; // 数组大小改为10 int x; for(int i =0;i<10;i++){ scanf("%d",&x); dizi[i]=x; printf("%d",dizi[i]); } return 0; // 补充main函数返回值,符合C标准规范 }
- 调整循环次数,让循环执行次数和数组容量一致:
#include<stdio.h> int main(){ int dizi[9]; int x; for(int i =0;i<9;i++){ // 循环条件改为i<9 scanf("%d",&x); dizi[i]=x; printf("%d",dizi[i]); } return 0; }
额外提示:C语言标准要求main函数返回一个整数值,建议加上return 0;,避免潜在的编译警告或问题。
内容的提问来源于stack exchange,提问作者Diksonim
相关产品推荐
相关产品推荐

