一个 问题,关于LINUX C下的链表实现
/*** LinkList.c****/
#include <stdio.h>
#include <math.h>
#include "LinkList.h"
void create_LinkList(LinkList *L,int n)
{ LinkList p;
int i;
srand(time(0));
*L = (LinkList)malloc(sizeof(Node));
(*L)->next = NULL;
for(i = 0;i<n;i++)
{
p = (LinkList)malloc(sizeof(Node));
p->data = rand()%100+1;
p->next = (*L)->next;
(*L)->next = p;
}
}
void show_LinkList(LinkList L,int n)
{
int i = 0;
LinkList p = L;
while(p->next != NULL)
{
printf("the %d number = %d\n",i,p->next->data);
i++;
p = p->next;
}
}
/****tstLinkList.c ***/
#include <stdio.h>
#include "LinkList.h"
int main()
{
LinkList *L = (LinkList *)malloc(sizeof(LinkList));
create_LinkList(L,5);
LinkList p = *L;
show_LinkList(p,5);
return 0;
}
/**** LinkList.h****/
#ifndef _LinkList__h
#define _LinkList__h
typedef struct{
int data;
struct Node *next;
}Node;
typedef Node * LinkList;
void GetElem(LinkList L,int i , int* e);
void create_LinkList(LinkList *L,int n);
void show_LinkList(LinkList L,int n);
#endif
能帮我看看什么问题吗
[解决办法]
采用二级指针
[解决办法]
http://blog.csdn.net/gaochizhen33/article/details/8249021
楼主看看这个,会对指针出参有更多认识
[解决办法]
http://www.csdn.net/article/2013-01-10/2813559-two-star-programming
[解决办法]
文中有多处是指针的错误书写
LinkList *L = (LinkList *)malloc(sizeof(LinkList));
create_LinkList(L,5); //既然函数接受的是一个指针应该是传地址进去的 &L
create函数中更多:
*L = (LinkList)malloc(sizeof(Node));
malloc返回的是一个指针你怎么用*Pointer去接呢?