From mboxrd@z Thu Jan 1 00:00:00 1970 From: "J." Subject: realloc array of structures Date: Sun, 25 Apr 2004 18:16:27 +0200 (CEST) Sender: linux-c-programming-owner@vger.kernel.org Message-ID: Mime-Version: 1.0 Return-path: List-Id: Content-Type: TEXT/PLAIN; charset="us-ascii" Content-Transfer-Encoding: 7bit To: linux-c-programming@vger.kernel.org Sunday, April 25 18:08:29 Hello, I am trying to put incomming data into an array of structures. For example everytime a new line arrives, grow the array by one, and copy the line into the newly allocated mem structure. Unfortunatly I am a bit lost in the pointer world. Could someone give me some hints what to what goes wrong in the small example code below ? #include #include #include struct node { char *str; }; int main(void) { struct node **strarray = NULL; int i = 0, count = 0; char line[1024]; while(fgets(line, 1024, stdin) != NULL) { /* grow the array with one element */ strarray = (struct node **)realloc(strarray, (count + 1) * sizeof(struct node *)); /* copy the line to member str of the new element (structure) */ strarray[count++].str = strdup(line); } for(i = 0; i < count; i++) printf("[%d].str: %s", i, strarray[i].str); return 0; } /* any comments or suggestions are more then welcome.. Thnkx ! */ /* J. */