注册 登录
编程论坛 数据结构与算法

产生一个违例异常(段异常),我不懂,求大神解答

银灯玉箫 发布于 2013-03-26 22:12, 453 次点击
#include<iostream>
#include<stdio.h>
#include<malloc.h>
using namespace std;
#define MaxSize 100
typedef struct
{
    int xp;
    int yp;
}Box;
typedef struct Lnode
{
    Box data;
    struct Lnode *next;
}LinkList;
void CreateLinkList(LinkList *L,int a[],int b[],int n)
{
    L = (LinkList*)malloc(sizeof(LinkList));
    L->next = NULL;
    LinkList *p,*s,*r;
    int i=0;
    p=L;
    while( i< n)
    {
        s=(LinkList *)malloc(sizeof(LinkList));
        s->data.xp = a[i];
        s->data.yp = b[i];
        p->next =s;
        p = s;
        
        i++;
    }
    p->next = NULL;
}
void DispLinkList(LinkList *L)
{
    LinkList *p=L;
    while(p != NULL)
    {
       printf("%d %d",(p->data).xp,(p->data).yp);//就是这一句有问题
       p=p->next;
    }
   
}

int main()
{

    int t;
    cin>>t;
    while(t--)
    {
        LinkList *h1;
        int n;
        cin>>n;
        int a[n],b[n];
        for (int i=0;i<n;i++)
        {
            cin>>a[i];
        }
        for (int i=0;i<n;i++)
        {
            cin>>b[i];
        }
        CreateLinkList(h1,a,b,n);
        DispLinkList(h1);

        system("pause");
    }
}
3 回复
#2
yuccn2013-03-26 23:03
int main()
 {
 
    int t;
     cin>>t;
     while(t--)
     {
         LinkList *h1;
         int n;
         cin>>n;
         int a[n],b[n];

         for (int i=0;i<n;i++)
         {
             cin>>a[i];
         }
         for (int i=0;i<n;i++)
         {
             cin>>b[i];
         }
         CreateLinkList(h1,a,b,n);
         DispLinkList(h1);
 
        system("pause");
     }
 }
编译能通过?
#3
azzbcc2013-03-26 23:31
我有些疑惑,为什么creat函数失败了,得改成二级指针,啧啧
#4
azzbcc2013-03-26 23:34
仔细跟进终于明白了,看来指针这块我还得在修炼修炼
1