如何消除c中结构数组中的元素

时间:2017-11-11 13:28:38

标签: c

如何创建一个函数来消除结构数组c编程中的元素。我的作业是为诊所创建一个数据系统,用于存储患者的信息并删除诊所中已注册的患者。这是我的一些代码。

#include<stdio.h>
 #include<string.h>


struct Client
{
char namec[30];
char sex[100];
char suggested_medication[200];
int age;
};


void showcliente(struct Client *itens,int s)
{


   int l,op;
 int num=s+1; 
  

//不要担心num,每次cliente寄存器我都会返回   位置编号并加一个。

 printf("enter position: ");
 scanf("%i",&l);
   for (l=0;l< num;l++) {

      printf("name: %s \n", itens[l].namec);
  printf("age : %i \n", itens[l].age);
  printf("Sex : %s \n", itens[l].sex);
  printf("Tipo de enfermidade %s \n", itens[l].suggested_medication);
  printf("\n\n");
  printf("**********************************");

   } 

 getch();
  system("cls");

}

 main()           
{
system("COLOR F9");

int n=-1,op;

struct Cliente* itens = malloc(40*sizeof(struct Cliente));

struct Cliente *funC(int i)
{
    n=n+1;
  printf(" patients name: "); 
  scanf(" %[^\t\n]s",&itens[n].namec);
     printf(" age: ");
  scanf("%i",&itens[n].age);
  printf(" Sex: ");
  scanf("%s",&itens[n].sex); 
  printf("suggested medication: ");
  scanf(" %[^\t\n]s",&itens[n].suggested_medication);
        system("pause");
        system("cls");
  return itens;


}


}

1 个答案:

答案 0 :(得分:0)

从问题中可以清楚地看出,您需要动态创建所有客户端节点。并在需要时删除它们。或者甚至更好,您可以尝试从这些节点创建链接列表并根据需要进行管理。

因此,在回答这个问题时,最好的方法是根据需要分配内存然后使用它们。如果不需要客户的信息,您可以尝试删除它们。

您正在做的是一次分配40个左右的客户端。最好的方法是根据需要逐一进行。您可以使用malloc动态分配内存,并使用free()释放它们。另外,要阅读一行输入,您可能需要使用fgets()