C语言数据结构顺序表初始化程序
不知道哪里出了问题,求指教~!#include<stdio.h>#include<stdlib.h>#defineOK1#defineERROR-1#defineMAX_...
不知道哪里出了问题,求指教~!
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR -1
#define MAX_SIZE 100
typedef int Status;
typedef int ElemType;
typedef struct sqlist
{
ElemType Elem_array[MAX_SIZE];
int length;
}SqList;
Status Init_SqList(sqlist *L)
{
L->Elem_array=(ElemType*)malloc(MAX_SIZE*sizeof(ElemType));
if(!L->Elem_array)return ERROR;
else{L->length=0;return OK;}
} 展开
#include <stdio.h>
#include <stdlib.h>
#define OK 1
#define ERROR -1
#define MAX_SIZE 100
typedef int Status;
typedef int ElemType;
typedef struct sqlist
{
ElemType Elem_array[MAX_SIZE];
int length;
}SqList;
Status Init_SqList(sqlist *L)
{
L->Elem_array=(ElemType*)malloc(MAX_SIZE*sizeof(ElemType));
if(!L->Elem_array)return ERROR;
else{L->length=0;return OK;}
} 展开
2个回答
展开全部
你的SqList结构包含的元素是一个100个int类型的数组,和一个int变量。
在初始化函数中,首先参数sqlist *L,应该改成Sqlist *L
然后你给L->Elem_array进行赋值操作是不对的,因为Elem_array是数组首地址,是个常量,不能进行赋值操作。而且本身结构里面定义的是数组元素,所以已经有空间了,根本不需要再另外申请内存。如果需要动态申请内存,就把Elem_array声明为指针类型:ElemType *pElem_array
在初始化函数中,首先参数sqlist *L,应该改成Sqlist *L
然后你给L->Elem_array进行赋值操作是不对的,因为Elem_array是数组首地址,是个常量,不能进行赋值操作。而且本身结构里面定义的是数组元素,所以已经有空间了,根本不需要再另外申请内存。如果需要动态申请内存,就把Elem_array声明为指针类型:ElemType *pElem_array
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询