#include <stdio.h>
struct Bar{
int max;
int N;
int k[4];
float g[4];
};
typedef struct Bar myStruct;
myStruct entr(){
myStruct result;
int i;
printf("max\n");
scanf("%d", &result.max);
printf("N = \n");
scanf("%d", &result.N);
printf("\nEnter k = ");
for(i=1; i<=4; i++) scanf("%d", &result.k[i]);
printf("\ng = ");
for(i=1; i<=4; i++) scanf("%f" , &result.g[i]);
return result;
}
void main() {
myStruct entrs=entr();
}
我在linux中运行此代码(使用gcc编译),每次出现以下错误
&#34; *堆栈粉碎检测到* :./a.out已终止 中止 &#34;
如何解决此错误?**
答案 0 :(得分:7)
问题在于边界(超限)。
在你的情况下
for(i=1; i<=4; i++)
应该是
for(i=0; i<4; i++)
因为C数组使用基于0的索引。否则,使用您的代码,您就
了尽管如此,void main()
应该是int main(void)
,以使托管环境符合标准。