Как мне выделить больше места для моего массива структур C?

Я пытаюсь добавить еще 10 элементов в свою структуру, которая уже была malloc с фиксированным размером 20. Вот как я определил свою структуру:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct st_temp {
   char *prod;
};

int main ()
{
   struct st_temp **temp_struct;

   size_t j;
   temp_struct = malloc (sizeof *temp_struct * 20);
   for (j = 0; j < 20; j++) {
      temp_struct[j] = malloc (sizeof *temp_struct[j]);
      temp_struct[j]->prod = "foo";
   }

   return 0;
}

Итак, что я имел в виду было перераспределить как (однако, не знаю, как это сделать):

temp_struct = (struct st_temp **) realloc (st_temp, 10 * sizeof(struct st_temp*));

, а затем добавить дополнительные 10 элементов,

   for (j = 0; j < 10; j++)
      temp_struct[j]->prod = "some extra values";

Как я мог этого добиться? Любая помощь приветствуется!

5
задан Josh 31 October 2010 в 21:43
поделиться