|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
求助大佬,同一个代码,在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);
}
|
|