次の関数で、メモリアドレスを格納するために予約および/または割り当てられたメモリスペースを決定するための式または関数を決定する必要があります。テキストファイルからデータを取得して循環単純リストを作成します。どうすればこれを実装できますか?
円形の単純なリストを作成するための私の関数は次のようになります。
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;
}
}
そしてvoidmain()には、テキストファイルからデータを取得するための次のコードがあります。
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);
}