C语言动态存储

来源:百度知道 编辑:UC知道 时间:2024/05/17 13:53:08
#define LIST_INIT_SIZE 100

#include "stdio.h"
#include "conio.h"

typedef struct
{
int *elem;
int listlength;
int listsize;

}Sqlist;

int i;
Sqlist L;

void initlist_Sq(Sqlist &L)
{
L->elem = ( int * ) malloc ( LIST_INIT_SIZE * sizeof ( int ));

listsize = LIST_INIT_SIZE;

listlength = 0;

}

void initlist_Sq(Sqlist &L) 说我这一行说明语法错误..哪有问题?
还是显示说明语法错误啊.
是不是软件不支持?
我用的是清华大学出版的数据结构(C语言版)
WIN-TC和TC2.0好象不支持void initlist_Sq(Sqlist &L)这种类型的编写..

结构体L如果是被定义成外部变量,全体函数都可以不经参数传递使用。
如果void initlist_Sq()要调用L,形参既可以是Sqlist L,也可以不填。传递地址的方法在VC中可以使用,在TC里被认为是语法错误。
对结构体内部成员操作时,成员名称前要加上结构体的名称,格式是:结构体名.成员变量名 如果结构体是指针型,还可以表示成:结构体名->成员变量名。
#define LIST_INIT_SIZE 100

#include "stdio.h"
#include "conio.h"

typedef struct
{
int *elem;
int listlength;
int listsize;

}Sqlist;

int i;
Sqlist L;

void initlist_Sq(Sqlist L)
{
L.elem = ( int * ) malloc ( LIST_INIT_SIZE * sizeof ( int ));

L.listsize = LIST_INIT_SIZE;

L.listlength = 0;

}

刚刚弄错了,不过这个程序还没加main()函数,不能通过编译的,也无法知道L是否全局变量的
#include <malloc.h>//加上头文件

#define LIST_INIT_SIZE 100
#include "stdio.h"
#include "conio.h"

typedef struct
{
int *elem;
int listlength;
int listsize;

}Sqlist;

int i;
Sqlis