gpt4 book ai didi

c - 我的 C 应用程序中出现段错误

转载 作者:行者123 更新时间:2023-11-30 20:27:33 26 4
gpt4 key购买 nike

我刚开始使用fgets,所以我不知道我做错了什么。我需要制作一个 float 表,但在标准输入期间我不断出现段错误。为了便于阅读,我删除了所有“不必要的”代码,所以是的,我确实使用了参数中的所有参数。即使我输入一个数字,它也会出现段错误。

typedef struct row
{
int column;
float value[20];
}ROW;

//in main ROW table[100];

void makeTable2(ROW* table, int* row, int* column)
{
int counter = 0, counter2;
int y = 0;

char str[256], again;

printf("Enter in the table: ");

do{

fgets(str, 256, stdin);

while(sscanf(str, "%f", &table[*row].value[y]))
y++;

(*row)++;

printf("Add another row? (y or n)? ");
scanf("%c", &again);

}while(again == 'y' || again == 'Y');
}

最佳答案

排队

   while(sscanf(str, "%f", &table[*row].value[y]))

你每次都在读取第一个数字,而不是下一个数字,只是第一个数字,当 y 超过值 20 时,就会出现缓冲区溢出。分别尝试 scanf() 每个值。

关于c - 我的 C 应用程序中出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18912928/

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