gpt4 book ai didi

c - 使用数组时出现段错误

转载 作者:行者123 更新时间:2023-11-30 18:17:03 26 4
gpt4 key购买 nike

#include <stdio.h>

typedef struct StockDetail {
char* name;
int code;
int price;

} Stock;

int main(void)
{
Stock a[200]; int i; int b;
for(i=0; i<20 ; i++ )
{
printf("Stock %i\n",i+1);
printf("Name:");
scanf("%s",a[i].name);
printf("Code:");
scanf("%i",&a[i].code);
printf("Name:");
scanf("%i",&a[i].price);

}

printf("Maximum price of the stock:");
scanf("%i", &b);

for(i=0; i<20 ; i++)
{
if(a[i].price<=b)
{
printf("%s\n",a[i].name);
}
}
}

嗨,我正在尝试实现一个程序,该程序读取 20 个股票详细信息,例如名称、代码和价格,然后要求用户输入最高价格并打印出成本低于该价格的股票。代码看起来不错,但当我尝试运行时,它给出了“段错误”错误行。

最佳答案

您没有为您的Stock.name分配任何空间。使用 char[100] 或分配一些空间。

类似于:

for(i=0; i<20 ; i++ )
{
char tempname[100];
printf("Stock %i\n",i+1);
printf("Name:");
scanf("%s",tempname);
a[i].name=strdup(tempname);

别忘了释放它!

否则声明

typedef struct StockDetail {
char name[100];
int code;
int price;

} Stock;

关于c - 使用数组时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47277498/

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