構造体のエントリを削除し、realloc
を使用してメモリを解放しようとしています。私の構造は構造体のエントリを削除し、メモリを解放するためにreallocを使用する方法
typedef struct person {
char fname[20];
char lname[20];
int number[10];
}person;
Imが入力されたエントリ
void delInfo(int*,person*);
削除機能が動作するようになっている方法を削除する機能を使用している、その後、その後戻ってすべてのレコードをシフトする、と述べたエントリを検索する最後の解放でありますrealloc
と記録します。 はそれのためのコードは、これまでこれまでのところ、私は最初と最後の名前の一致を検索し、私はすべてのエントリを移動する場合、何が起こるかを知らないことができ、この
void delInfo(int *num_entries,person*contacts){
char delfirst[20];
char dellast[20];
printf("\n First Name: ");
scanf("%s",delfirst);
printf(" Last Name: ");
scanf("%s",dellast);
int i=0;
for (i=0; i<*num_entries;i++){
if (delfirst==contacts[i].fname && dellast==contacts[i].lname){
}
}
}
のように見える「ダウン1。」一致するエントリは、連絡先[i]は
int c;
for (c=i+1;c<*num_entries;c++){
contacts[i].fname=contacts[c].fname;
contacts[i].lname=contacts[c].lname;
contacts[i].number=contacts[c].number;
}
contacts=(person*)realloc(contacts,sizeof(contacts)*(num_entries-1));
のようなものを私は削除する予定の1 AFTERすべてのエントリに、彼らはちょうど私が削除したい項目を「上書き」ないことを行う場合、私はrealloc
ためにできることであれば構造体配列を短くして基本的にメモリを解放しますか?