【发布时间】:2020-01-20 09:53:11
【问题描述】:
我正在尝试创建一个指向 stuct 的指针数组。 到目前为止,我已经完成了以下代码
#include <stdlib.h>
typedef struct ID{
char firstName[21];
char lastName[21];
char phoneNumber[11];
}ID;
int main(int argc, char *argv[]) {
int answere,i=0;
printf("******* WELCOME TO PHONEBOOK **********\n\n\n");
printf("***************************************\n");
printf("* MENU *\n");
printf("* *\n");
printf("* 1.Add New 2.Print list 3.Exit *\n\n");
printf("***************************************\n\n");
ID* ptr=(int*)malloc(21*sizeof(ID));
do
{
printf("Please select (1, 2 or 3): ");
scanf("%d",&answere);
if(answere!=1 && answere!=2 && answere!=3)
{
printf("//...Error...\\ please give me a correct answere: ");
}
if(answere == 1)
{
i++;
addNew(&ptr,i);
}
else if(answere==2)
{
PrintList(&ptr,i);
}
}while(answere!=3);
return 0;
}
所以 ptr 数组将是每次新用户时,我希望它最多 3 个用户添加新用户的代码如下
ID addNew(ID *ptr,int i){
char fname,lname,phone;
if(i<3)
{
int l;
for (l=1;l<=3;l++)
{
ID user;
ptr[l] = user;
printf("enter the first name: ");
scanf("%s",&fname);
*ptr->firstName= fname;
printf("enter the last name: ");
scanf("%s",&lname);
*ptr->lastName = lname;
printf("enter the phone number: ");
scanf("%s",&phone);
*ptr->phoneNumber = phone;
}
}
else
{
printf("sorry but you have reach max capacity\n");
}
}
问题是,当我在赋值后调用第一个函数时,程序崩溃了。怎么了?
【问题讨论】:
-
为什么问题本身没有提到你的问题的标题?您实际上是在问哪个问题?
标签: c arrays pointers data-structures