C-如何在结构阵列的末端添加结构



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");

最新更新