标题:请教个问题.
只看楼主
haroldi
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2006-7-22
 问题点数:0 回复次数:3 
请教个问题.

才开始学,遇到如下问题,请指教一下:
这里为什么初始化时,不先定义一个SqList *p;运行就出错呢?


void InitList(SqList *L) // 这个能通过.
{
SqList *p;
p = (SqList *)malloc(List_Maxsize * sizeof(SqList));
if(!p) exit (OVERFLOW);
p=L;
L->length=0;
printf("InitList is OK!\n\t The L.length = %d",L->length);
}

int Input_SqL(SqList *L)
{
int i=0;
InitList(L);
printf("\nPlease Input:\n");
while((scanf("%d",&L->data[i++]))==1&&i<ListMax) ++L->length;
printf("\n\n\tInput_SqL: L->length = %d\n",L->length);
}

/*
void InitList(SqList *L) // 这个为什么不行?
{
L = (SqList *)malloc(List_Maxsize * sizeof(SqList));
if(!L) exit (OVERFLOW);
L->length=0;
printf("InitList is OK!\n\t The L.length = %d",L->length);
}
*/

搜索更多相关主题的帖子: void 
2006-08-25 22:28
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
得分:0 

[QUOTE](SqList *L)

L = (SqList *)malloc(List_Maxsize * sizeof(SqList));[/QUOTE]

形参属于编译器自动分配内存.
你的L已经被编译器自动分配过了
之后你又想动态的再一次分配.这个当然不可以.
两种分配方法并不是在同一个存储区中!


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-08-27 12:42
haroldi
Rank: 1
等 级:新手上路
帖 子:158
专家分:0
注 册:2006-7-22
得分:0 
o..多谢指教!

Do people want thick road ...
2006-08-27 13:04
爱疯了
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-9-5
得分:0 

(SqList *L)

L = (SqList *)malloc(List_Maxsize * sizeof(SqList));

2006-09-05 21:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-86162-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050887 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved