首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一个 有关问题,关于LINUX C上的链表实现

2013-01-23 
一个 问题,关于LINUX C下的链表实现/*** LinkList.c****/ #include stdio.h#include math.h#include

一个 问题,关于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去接呢?

热点排行