我需要以给定格式从文本文件中获取信息:
姓氏,名字
街道地址
市,州
邮政编码
姓氏,名字
街道地址
市,州
邮政编码
等等...
我假设我不知道条目的数量,所以显然我将不得不动态分配空间 . 我还需要使用一个指针数组来指向每个结构 . 目前,我只关心使用malloc分配空间,为结构赋值,将ptr分配给结构,然后输出给定的信息 . 我将使用IO重定向从txt文件中获取数据(我知道该怎么做) .
我得到的错误在底部的printf()上(错误:请求成员'name',而不是结构或联合),但我怀疑我的代码有更多错误
感谢帮助 .
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct addressBook{
char name [50];
char streetAddress [50];
char cityAndState [25];
int zip;
};
int main(){
int *ptr[50];
int i, k;
unsigned ptrCount = 0;
for (i = 0; i != EOF; i++){
struct addressBook *newAddress = malloc(sizeof(struct addressBook));
gets(newAddress->name);
gets(newAddress->streetAddress);
gets(newAddress->cityAndState);
scanf("%d", &newAddress->zip);
for (k = 0; k < 50; k++){
*ptr[k] = &newAddress;
ptrCount++;
}
}
putchar('\n');
int z;
for (z = 0; z < ptrCount; z++){
printf("%s \n%s \n%s %d\n", *ptr[z].name, *ptr[z].streetAddress, *ptr[z].cityAndState, *ptr[z].zip);
}
}
1 回答
您的ptr数组被声明为指向整数的指针数组 . 我认为你的意思是将它声明为一个addressBook指针数组:
然后你可以像这样分配值:
并打印如下:
有一个循环将每个新分配的addressBook对象分配给ptr数组中的50个指针中的每一个,这对我来说没有多大意义 . 也许代替了
循环部分,你只想做一个简单的:
?