想在头文件中初始化顺序表,在main函数只能传参的时候传的是(sqlList L),调用LocalElem(L,X)是报错说没有给L初始化.
原因:调用初始化的函数,传过去的参数是sqlList L并不能改变实参,虽有后来改为了sqlList *L,就可以了
#pragma once
#define maxSize 100
typedef struct {
int data[maxSize];
int length;
}sqlList;
//初始化一个线性表(n:数组的长度)
void InitList(sqlList *L, int a[], int n) {
int i;
L->length = 0;
for (i = 1;i <= n;i++) {
L->data[i] = a[i - 1];
L->length++;
}
}
//返回第一个比x元素大的元素的位置
int LocateElem(sqlList L,int x) {
int i;
for (i = 1;i <= L.length;i++) {
if (x
return i;
}
}
return i;
}
#include
#include "head.h"
int main() {
sqlList L;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
/*for (int i = 1;i <= 10;i++) {
L.data[i] = a[i-1];
}
L.length = 10;*/
InitList(&L,a,10);
int x = LocateElem(L,5);
printf("%d\t",x);
}