Realloc dynamiczna tablica wskaźników w funkcji - jak?

0

Cześć. Kod trochę obcięty, ale myślę że zrozumiecie (jak coś mogę wkleić całość). Z każdą nową linią zwiększam tablicę wskaźników. Chciałam żeby było to w funkcji, ale wtedy przestaje działać ;/ ;.

struct node {
 char *str;
 int len;
};

void alloc_space(struct node **array, const char *line, unsigned count) {
	array = (struct node **)realloc(array, (count + 1) * sizeof(struct node *)); /* O TUTAJ BŁĄD */
	array[count] = (struct node *)malloc(sizeof(struct node));
	array[count]->str = strdup(line);
	array[count]->len = strlen(line);
}

int main(void) {
	struct node **strarray = NULL;

	/* parse to struct */
	for(count=0;fgets(line,1024,fp)!=NULL;count++) {
		//strarray = (struct node **)realloc(strarray, (count + 1) * sizeof(struct node *)); /* A JAK SIEDZI TUTAJ TO JEST OKEY */
		alloc_space(strarray,line,count);
	}

Od zawsze miałam problem ze wskaźnikami i teraz znowu ;. . Może ktoś z was zna jakieś fajne materiały w internecie z których można się tego porządnie nauczyć? (różne warianty używania wskaźników..)
Pozdrawiam

1

Jedno z dwóch:

  1. void alloc_space(struct node ***array, ...
  2. struct node **alloc_space(struct node **array, ...
    resztę chyba się domyślisz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1