我需要在以下函数中确定用于确定保留和/或分配用于存储内存地址的内存空间的公式或函数:通过从文本文件中获取数据来创建循环简单列表。我该如何实现呢?
这是我创建循环简单列表的函数的样子:
void creare_lista(listaSimpla *&cap,ContBancar *cont)
{
listaSimpla *nou = (listaSimpla*)malloc(sizeof(listaSimpla));
nou->info=cont;
nou->next=NULL;
if(cap==NULL)
{
cap=(listaSimpla*)malloc(sizeof(listaSimpla));
cap=nou;
cap->next=cap;
}
else
{
listaSimpla *aux=cap;
while(aux->next!=cap)
aux=aux->next;
aux->next=nou;
nou->next=cap;
}
}
并且在void main()中,我有以下代码从文本文件中获取数据:
listaSimpla *cap=NULL;
char buff[100];
FILE *f;
f=fopen("fisier.txt", "r");
if(f)
{
while(!feof(f))
{
ContBancar *cont=new ContBancar;
fscanf(f,"%d", &cont->nrCont);
fscanf(f,"%s", &buff);
cont->nume=(char*)malloc(strlen(buff)+1);
strcpy(cont->nume,buff);
fscanf(f,"%d",&cont->data.zi);
fscanf(f,"%d",&cont->data.luna);
fscanf(f,"%d",&cont->data.an);
fscanf(f,"%f",&cont->sold);
fscanf(f,"%f",&cont->rata);
creare_lista(cap,cont);
}
fclose(f);
}