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