Hello,
If a have structs like:
Code:
struct queueNodeInfo {
int ID;
int arr[MAX];
};
typedef struct queueNodeInfo QueueNodeInfo;
typedef QueueNodeInfo *QueueNodeInfoPtr;
struct queueNode {
struct queueNodeInfo Info;
struct queueNode *nextPtr;
};
typedef struct queueNode QueueNode;
typedef QueueNode *QueueNodePtr;
and say I do something like:
Code:
void enqueue( QueueNodePtr *headPtr, QueueNodePtr *tailPtr, QueueNodeInfo node ) {
QueueNodePtr newPtr;
// QueueNodeInfo temp;
newPtr = malloc( sizeof( QueueNode ) );
if ( newPtr != NULL ) { /* is space available */
// temp=newPtr->busInfo;
newPtr->busInfo = node;
// free temp??
newPtr->nextPtr = NULL;
/* if empty, insert node at head */
if ( isEmpty( *headPtr ) ) {
*headPtr = newPtr;
}
else {
( *tailPtr )->nextPtr = newPtr;
}
*tailPtr = newPtr;
}
else {
printf( "No memory available.\n" );
}
}
Do I then need to free 'temp' as I've defined in my function? ie. Because when I run malloc, wouldn't I allocate memory for an empty 'Info' struct? If I want to assign another such struct in its place; then wouldn't I have to free the empty one? If so how would I go about doing it because free(temp) yields a compilation error...
Thanks