i具有动态分配的构造数组。我想在数组的末端添加新结构。
定义为
的结构struct book
{
char *id;
char *bookName;
char *authorName;
char *numOfPages;
char *publishingYear;
char *category;
} typedef t_book;
定义为
的数组t_book* books= (t_book*)malloc(4*sizeof(t_book));
用 realloc()
size_t new_book_count = book_count + 1;
// size of 1 book * book count
void *newbooks = realloc(books, sizeof *books * new_book_count);
// Successful ?
if (newbooks == NULL) {
perror("Out of memory");
return error;
}
books = newbooks;
// copy in new structure
books[book_count] = new_struct;
book_count = new_book_count;
做类似的事情
t_book* books;
books = malloc( 4 * sizeof *books); //Preferred way to do malloc
//At this point you want to add one in the end
t_book* bookstemp=realloc(books,5 * sizeof *books);
// temporary variable for the case where realloc fails not to loose data
if(bookstemp){
printf("Realloc succeededn");
books=bookstemp;
}
else
printf("Realloc failedn");