gpt4 book ai didi

c - 在 C 中使用结构

转载 作者:太空宇宙 更新时间:2023-11-04 00:35:16 24 4
gpt4 key购买 nike

#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编译),每次都出现如下错误

"* stack smashing detected *: ./a.out terminated Aborted "

我该如何解决这个错误?**

最佳答案

问题出在边界(超限)上。

在你的情况下

  for(i=1; i<=4; i++)

应该是

  for(i=0; i<4; i++)

因为 C 数组使用基于 0 的索引。否则,使用您的代码,您就是

也就是说,对于符合标准的托管环境,void main() 应该是 int main(void)

关于c - 在 C 中使用结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43755962/

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