队列、链表、栈的初始化要传参数无返回值就要现在主函数内先定义再申请空间再传递参数。不能定义参数后,不申请空间就直接传递参数,然后在初始化函数中再申请空间。
例如:
队列初始化传参数无返回值正确代码:
int main()
{
int i=0;
int number;
PQUEUE Q;//定义变量参数
Q=(PQUEUE)malloc(sizeof(QUEUE));//申请空间
InitQueue(Q);//参数传递
return 0;
}
void InitQueue(PQUEUE pQ)//初始化函数
{
if(pQ==NULL)
{
printf("动态内存分配失败!");
exit(-1);
}
PNODE q=(PNODE)malloc(sizeof(NODE));
if(q==NULL)
{
printf("动态内存分配失败!");
exit(-1);
}
q->pNext=NULL;
pQ->front=pQ->rear=q;
}
队列初始化传参数无返回值错误代码:
int main()
{
int i=0;
int number;
PQUEUE Q;// 定义变量参数
InitQueue(Q);// 参数传递
return 0;
}
void InitQueue(PQUEUE pQ)//初始化函数
{
pQ=(PQUEUE)malloc(sizeof(QUEUE));// 申请空间
if(pQ==NULL)
{
printf("动态内存分配失败!");
exit(-1);
}
PNODE q=(PNODE)malloc(sizeof(NODE));
if(q==NULL)
{
printf("动态内存分配失败!");
exit(-1);
}
q->pNext=NULL;
pQ->front=pQ->rear=q;
}