gpt4 book ai didi

c - C 项目无法运行

转载 作者:行者123 更新时间:2023-11-30 20:48:31 28 4
gpt4 key购买 nike

我需要做一个项目,到目前为止我已经完成了:

#include<stdio.h>
#include<malloc.h>
typedef struct
{
char Name[10];
char Address[10];
long Phone_number;
}Phonebook;
void main()
{
int Counter, Number = 0;
long Number_of_residents;
Phonebook *Information = (Phonebook*)malloc(sizeof(Phonebook));
scanf("%ld", &Number_of_residents);
for (Counter = 0; Counter < Number_of_residents; Counter++)
{
Information = (Phonebook*)realloc(Information, sizeof(Phonebook)*(Counter + 1));
gets(Information[Number].Name);
Number++;
gets(Information[Number].Address);
Number++;
scanf("%ld", &Information[Number].Phone_number);
Number++;
}
}

我在这里做错了什么?

根本不起作用。

最佳答案

你不需要在每次 gets() 之后执行 Number++

代码中还有一些错误,正确的代码如下所示。请注意,我们不需要每次都重新分配数组,因为我们在读取每个元素之前就知道它的大小。

使用 gets() 也是不安全的,如果您开始使用 scanf() 最好继续使用它。

#include <stdio.h>
#include <stdlib.h>

typedef struct
{
char Name[10];
char Address[10];
long Phone_number;
}Phonebook;

int main() {
int Counter, Number = 0;
long Number_of_residents;
Phonebook * Information;
scanf("%ld", &Number_of_residents);
Information = (Phonebook*)malloc(Number_of_residents * sizeof(Phonebook));
for (Counter = 0; Counter < Number_of_residents; Counter++) {
scanf("%10s", Information[Counter].Name);
scanf("%10s", Information[Counter].Address);
scanf("%ld", &Information[Counter].Phone_number);
}

return 0;

}

关于c - C 项目无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493551/

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