首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么初始化呢? 郁闷

2012-02-06 
如何初始化呢? 郁闷。#includestdlib.h#includestdio.h#definelist_init_size10#defineok1#defineerror

如何初始化呢? 郁闷。
#include   <stdlib.h>
#include   <stdio.h>

#define     list_init_size   10    
#define     ok   1
#define     error   0

 
typedef   struct
{
              int   *elem;
              int   length;
              int   listsize;
}sqlist;
int   list_init(sqlist   *L);
int   list_output(sqlist   *L);  
int   main()
{  
              int   i;
              sqlist   *M;
             
              list_init(M);
              M-> length   =10;                         //欲建立一个10个元素的顺序表
              for(i=0;i <10   ;i++)
                    scanf( "%d ",&M-> elem[i]);             //用户输入数据
              list_output(M);
              return   ok;
}
 
int   list_init(sqlist   *L)     //初始化顺序表
{
    L-> elem   =(int*)malloc(list_init_size*sizeof(int));  
    if   (!L-> elem   )   exit(error);
    L-> length   =0;
    L-> listsize   =list_init_size;
    return   ok;
}
 
int   list_output(sqlist   *L)     //输出表
{        
      int   i;
              for(i=0;i <L-> length   ;i++)
                            printf( "%d ",L-> elem   [i]);
              return   ok;
}


[解决办法]
int main()
{
int i;
sqlist *M;

list_init(M);
————————————————————
这里M没分配内存。。。
int main()
{
int i;
sqlist *M;
M =(sqlist *)malloc(sizeof(sqlist) );
list_init(M);

这样应该就搞定了。。。
[解决办法]
#include <stdlib.h>
#include <stdio.h>

#define list_init_size 10
#define ok 1
#define error 0


struct sqlist
{
int *elem;
int length;
int listsize;
sqlist()
{
elem =(int*)malloc(list_init_size*sizeof(int));

length =0;
listsize =list_init_size;
}
};
int list_init(sqlist *L);
int list_output(sqlist *L);
int main()
{
int i;
sqlist *M = new sqlist();

for(i=0;i <10 ;i++)
scanf( "%d ",&M-> elem[i]);

M-> length = i;

//用户输入数据
list_output(M);
return ok;
}


int list_output(sqlist *L) //输出表
{
int i;


for(i=0;i <L-> length ;i++)
printf( "%d\n ",L-> elem [i]);
return ok;
}


//其实结构体也有自己的构造函数的,呵呵

热点排行