From: <mi...@ze...> - 2005-10-09 09:54:00
|
Hi Sahil, * On 2005-10-09 Sahil Muthoo <sta...@ya...> wrote : > Here is my code:- (snipped out your code) > This is a very strange bug, if i try to accept more than 3 nodes, a > segmentation fault occurs and the program crashes. Dev-Cpp/Mingw32 users > kindly help me cause i dont know wheather my code is at fault or if i am > not compiling correctly or what the problem is. I believe your code is wrong: in getnode() you mean to allocate memory for a new node, but you merely allocate enough memory to hold a *pointer to a node*. This is neatly obfuscated by the use of a typedef. Your code does : p=(nodeptr)malloc(sizeof(nodeptr)); But what you want to do is p=(nodeptr)malloc(sizeof(struct node)); I've shot myself in the foot too many times in my early C days, and what I learned is *not to use typedefs*. If my program is working with a 'struct foo' somewhere, I'd rather see it in the code, instead of having the exact data type being hidden by a typedef. It avoids pitfalls like this. From now on, you might want to ask yourself : "do I have a *good* reason for using a typedef here"? Keep in mind that saving a few keystrokes is never a *good* reason. _Ico -- :wq ^X^Cy^K^X^C^C^C^C |