如下代碼所示:
#include <stdio.h>
#include <malloc.h>
#define MAXSIZE 100
typedef int Position;
typedef struct LNode *List;
struct LNode{
int Data[MAXSIZE];
Position last;
};
List initList(){
List L;
L = (List)malloc(sizeof(struct LNode));
L->last = -1;
printf("初始化成功\n");
return 1;
}
List createList(List L){
int n,i=1;
printf("請輸入創建表的元素個數:");
scanf("%d",&n);
for(i=1;i<=n;i++){
printf("\n請輸入第%d個元素:",i);
scanf("%d",&L->Data[i]);
}
for(i=1;i<=n;i++){
printf("創建的表為:\n");
printf("%d",L->Data[i]);
}
}
void main(){
List L;
initList(L);
createList(L);
}
在VC++ 6.0每次運行,一輸入數據,就提示關閉程序。
小白剛剛弄數據結構,請大家幫忙看看哪裡有問題,謝謝!
List initList(){
List L;
L = (List)malloc(sizeof(struct LNode));
L->last = -1;
printf("初始化成功\n");
return 1;
}
這個定義錯了
你的返回值是1 ,1 怎麼是List類型呢
另外如果你使用這個返回值List作為初始化的順序表,那麼在main函數中使用的時候,使用方法錯了哦
void main(){
List L;
** initList(L);
** createList(L);****
}
改成這個
List L = initList()