Memory allocation troubles- i think

From: RJ Bean (
Date: 12/14/00

I've been trying to implement a dynamic link list under the char_player_data
struct to the effect that the character will have a list of character that
that character 'knows'.  (so that the character will see names vs. seeing
short descs of other players)  This is all related under an 'introduce'
command i put in.  When I first declare a temporary pointer to insert into
the linked list (alphabetically) I do a

struct known_char_node *new_rec_ptr;

but when I attempt to allocate the memory, i think i'm encountering a
problem.  Nowhere can i find any good documentation on the malloc statement.
  I first tried using 'new' but i got undeclared identifier.  I assumed that
since its of .c extension.  I must resort to the 'C' malloc and free.

I'm currently using this (it compiles correctly but I crash on the specified

void add_friend(struct char_data *ch, struct char_data *victim)
        struct known_char_node *new_rec_ptr; //Temporary pointer for the new friend

        new_rec_ptr = (struct known_char_node *) malloc((sizeof(struct
known_char_node)) + 1); //Allocate Memory

        if(new_rec_ptr != NULL)         //Allocated memory correctly?
        {                               //Get data and insert node
/*ERROR*/strcpy(new_rec_ptr->known_char, GET_NAME(ch));// ERROR IS
HERE            insert_node(new_rec_ptr, ch, victim);
        log("SYSERR:  Memory allocation failed in act.comm.c(600)");

I found the crashing line using log statements and frankly- i'm lost
i fooled around with the malloc line, removing the (struct known_char_node
*) part at the reccomendation of a friend and it didn't help at all.  If
anyone has any insights to this conglomeration of bad code, please shoot me
a mail. :) thanks
               Naeis of DaneuranMUD

Get more from the Web.  FREE MSN Explorer download :

   | FAQ: |
   | Archives: |

This archive was generated by hypermail 2b30 : 04/11/01 PDT