gpt4 book ai didi

c - 获取输入并将其分配给指针数组中的结构,指向每个结构。

转载 作者:行者123 更新时间:2023-11-30 14:22:46 24 4
gpt4 key购买 nike

我试图将输入分配给带有指针数组的多个结构,指向每个分配的结构。我一直在尝试填充一种结构并打印它,但不断出现错误并且无法找出原因。有任何想法吗?

感谢您的帮助。

/* Structure declaration */

struct personCatalog {
char name[50];
char address[50];
char cityState[50];
char zipCode[7];
} ;

//function to fill structures

void getPerson (struct personCatalog *ArrayOfPointers[]);

int main(int argc, const char * argv[])
{

struct personCatalog *pointerArray[51];

getPerson(pointerArray);

}

void getPerson (struct personCatalog *ArrayOfPointers[]){

struct personCatalog *tempPointer;

char stringCollector[512];

int maxNumberOfPeople = 51;
int num = 0;

while ((gets(stringCollector) != NULL) && (num < maxNumberOfPeople)) {

tempPointer = (struct personCatalog *) malloc(sizeof(struct personCatalog));
strcpy(tempPointer->name, stringCollector);
gets(tempPointer->address);
gets(tempPointer->cityState);
gets(tempPointer->zipCode);

ArrayOfPointers[num] = tempPointer;

num++;

printf("%s", ArrayOfPointers[num]->name);
printf("%s", ArrayOfPointers[num]->address);
printf("%s", ArrayOfPointers[num]->cityState);
printf("%s", ArrayOfPointers[num]->zipCode);

}

ArrayOfPointers[num] = '\0';
}

最佳答案

稍微修正了一下,尝试一下,但还有更多工作要做......

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Structure declaration */

struct personCatalog {
char name[50];
char address[50];
char cityState[50];
char zipCode[7];
} ;
const int maxNumberOfPeople = 3; // was 51;

//function to fill structures

void getPerson (struct personCatalog *ArrayOfPointers[]);

int main(int argc, const char * argv[]) {

struct personCatalog *pointerArray[maxNumberOfPeople];

getPerson(pointerArray);

}

void getPerson (struct personCatalog *ArrayOfPointers[]){
struct personCatalog *tempPointer;
char stringCollector[512];
int num = 0;

while ((num < maxNumberOfPeople) && (gets(stringCollector) != 0) ) {

tempPointer = (struct personCatalog *) malloc(sizeof(struct personCatalog));
strcpy(tempPointer->name, stringCollector);
gets(tempPointer->address);
gets(tempPointer->cityState);
gets(tempPointer->zipCode);

ArrayOfPointers[num] = tempPointer;


printf("name %s\n", ArrayOfPointers[num]->name);
printf("address %s\n", ArrayOfPointers[num]->address);
printf("cityState %s\n", ArrayOfPointers[num]->cityState);
printf("zipCode %s\n", ArrayOfPointers[num]->zipCode);

num++;
}
//ArrayOfPointers[num] = '\0'; this crashed at end of array
}

关于c - 获取输入并将其分配给指针数组中的结构,指向每个结构。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13545625/

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