各位高手,由于项目需要,须在程序中使用队列,对列的成员是一个结构。写了个测试程序但是新节点总是挂不到队列中去,请各位大侠指点!我的代码如下:
struct queueNode {
long int data;
struct queueNode *nextPtr;
};
typedef struct queueNode QUEUENODE;
typedef QUEUENODE *QUEUENODEPTR;
int main( void )
{
QUEUENODEPTR headPtr=NULL,tailPtr = NULL;
unsigned char i;
for(i=0;i<=200;i++)
{
enqueue(&headPtr,&tailPtr,i);
}
return 0;
}
void enqueue(QUEUENODEPTR * headPtr,QUEUENODEPTR * tailPtr,char value)
{
QUEUENODEPTR newPtr;
newPtr = malloc(sizeof(QUEUENODEPTR));
if(newPtr != NULL){
newPtr ->data = value;
newPtr ->nextPtr = NULL;
if(isEmpty(*headPtr))
*headPtr= newPtr;
else
(*tailPtr)->nextPtr = newPtr;
*tailPtr = newPtr;
}
}
改过了,还是在malloc(sizeof())时第二个节点分配不到内存。请各位高手指点!!
谢谢!我也查出来了
谢谢各位大侠!
我是跟踪到它分配内存的时候发现它的指针乱指才发现的。不管怎样,再次感谢各位指点!!