Hi!

So was macht man mit realloc. Guck dir am besten mal die man-Page zu realloc an (man 3 realloc).

Der Source müsste ungefähr so aussehen:
Code:
#include <stdio.h>
#include <malloc.h>

void init(char ***array)
{
   /* Für ein erstes Element */
   *array = (char**) malloc(sizeof(char*));
   (*array)[0] = (char*)malloc(sizeof(char) * 1024);
        
   snprintf((*array)[0], 1024, "a=0");
}


void modify(char ***array, int flag) /*flag=1: free, flag=0: alloc*/
{
    static int oldsize = 0;
    static int size = 1; /* Wir haben schon 1 Element */
    int i;

    switch(flag)
    {
        case 0:
        oldsize = size;
        size++;
        *array = (char **)realloc(*array, sizeof(char*) * size);
        for(i = oldsize; i < size; i++)
        {
            (*array)[i] = (char*)malloc(sizeof(char) * 1024);
            snprintf((*array)[i], 1024, "a=%i", i);
        }
        break;
        case 1:
        for(i = 0; i < size; i++)
        {
            free((*array)[i]);
        }
        free(array);
        break;
        default:
        break;
    }
} 

    
    

int main()
{
   
   char **array;
   int i = 0;

   init(&array);
   
   for (i = 0; i < 50; i++)
   {
        modify(&array, 0);
        printf("%s\n", array[i]);
   }
 
   /* Speicher freigeben */
   modify(&array, 1);
   return 0;
}
HTH

c ya,
Tobias