fg54 发表于 2019-8-6 20:16:05

Cfree程序运行出错的问题

求助大佬,同一个代码,在vc++6.0和vs2010上都能运行,在CFree上编译没问题,但就是不能运行,我个人感觉是malloc函数的问题,求大佬解答(这是部分代码,这是小甲鱼讲单链表的时候一个例题,利用快慢指针求一个单链表的中间结点的值,主要看创建线性表部分的代码就行了)

#define SIZE 11

typedef int Status;      //函数类型 int
typedef int ElemType;//数据类型 int

typedef struct Node    //结构体定义
{
        ElemType data;                  //数据域
        struct Node *Next;   //指针域
} Node;

void CreatListTail(Node **L, int n)   //创建 随机数 线性表
{
        int i;
        Node *p,*r;
        srand(time(0));        //初始化随机数种子,为生成随机数作准备

        *L = (Node*)malloc(sizeof(Node));
        r=*L;

        for(i=0;i<n;i++)
        {
                p=(Node*)malloc(sizeof(Node));
                p->data=rand()%100+1;//生成1-100的随机数,把100改为10则是生成1-10的随机数
                r->Next=p;
                r=p;
        }
        r->Next=NULL;

        printf("链表创建完毕!\n\n");
}


void SeeList(Node *L)//打印线性表函数
{
        printf("随机链表:");
        while (L->Next)
        {
                printf("%d ",L->Next->data);
                L = L->Next;
        }
        putchar('\n');
        putchar('\n');
}


//找中间结点
void Mid(Node *L)
{
        Node *q,*r;
        q=L->Next;
        r=L->Next;
        while (q->Next != NULL)
        {
                if(q->Next->Next != NULL)
                {
                        q=q->Next->Next;
                        r= r->Next;
                }
                else
                        q = q->Next;
        }

        printf("中间结点的值为 %d\n\n",r->data);
}

fg54 发表于 2019-8-6 21:13:26

问题解决了,更新了gcc编译器的版本,有跟我一样问题的可参考https://www.cnblogs.com/dolphin0520/p/3695221.html

fg54 发表于 2019-8-6 21:15:27

问题已解决,更新了gcc编译器的版本,有一样问题的可百度

cplus 发表于 2019-8-7 21:46:26

楼主,问题解决了,请结帖!
页: [1]
查看完整版本: Cfree程序运行出错的问题