24小时热门版块排行榜    

查看: 1002  |  回复: 9

jing199301

木虫 (初入文坛)

[求助] 一段数据结构的程序,求大神指正 已有5人参与

#include <stdio.h>
#include <stdlib.h>

typedef int ElemType;
#define INITSIZE 100
typedef struct sqlist
{
        ElemType *data;
        int length;
        int listsize;
};

void initlist(sqlist *L)
{
        L->data = (ElemType *)malloc(sizeof(ElemType) * INITSIZE);
        L->length = 0;
        L->listsize = 0;
}

void main()
{
        sqlist *L;
        int i;
        initlist(L);
}


请问大神们,这样一段程序有错误吗?
编译的时候都没有问题,但一旦运行就提示
一段数据结构的程序,求大神指正
变量L没有初始化???
不是已经初始化了吗.....?
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

感谢参与,应助指数 +1
stypedef那个地方写错了,应该写成

stypedef struct
{

}sqlist;
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2014-07-30 15:54:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jing199301

木虫 (初入文坛)

引用回帖:
2楼: Originally posted by baobiao007 at 2014-07-30 15:54:42
stypedef那个地方写错了,应该写成

stypedef struct
{

}sqlist;

我试了一下这两种写法都是可以的诶..
3楼2014-07-30 16:05:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安靖

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
it's right in Linux use g++
4楼2014-07-31 13:17:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

imyourkobe

铁杆木虫 (著名写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
jing199301: 金币+5, ★★★★★最佳答案 2014-08-06 15:42:29
sqlist *L;
改为
sqlist L;
initlist(&L);
5楼2014-08-02 00:23:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

只爱酱油瓶

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
你都没有构建一个实体,一个结构体的指针不能这样赋值

[ 发自小木虫客户端 ]
6楼2014-08-02 00:49:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

legendxx

银虫 (初入文坛)

【答案】应助回帖

感谢参与,应助指数 +1
修改为
void main()
{
        sqlist L;
        int i;
        initlist(&L);
}
或者
void main()
{
        sqlist *L=(sqlist*)malloc(....);
        int i;
        initlist(L);
}

[ 发自小木虫客户端 ]
7楼2014-08-02 05:33:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

legendxx

银虫 (初入文坛)

【答案】应助回帖

修改为
void main()
{
        sqlist L;
        int i;
        initlist(&L);
}
或者
void main()
{
        sqlist *L=(sqlist*)malloc(....);
        int i;
        initlist(L);
}

[ 发自小木虫客户端 ]
8楼2014-08-02 05:34:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jing199301

木虫 (初入文坛)

引用回帖:
7楼: Originally posted by legendxx at 2014-08-02 05:33:42
修改为
void main()
{
        sqlist L;
        int i;
        initlist(&L);
}
或者
void main()
{
         ...

谢谢!这样就对了..
但是我想问一下为什么?
9楼2014-08-06 15:54:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

legendxx

银虫 (初入文坛)

引用回帖:
9楼: Originally posted by jing199301 at 2014-08-06 15:54:02
谢谢!这样就对了..
但是我想问一下为什么?...

*定义的是个指针,没有分配空间前,可能指向的是任意地址。而C的规定是要先分配,后使用。

[ 发自小木虫客户端 ]
10楼2014-08-06 17:48:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 jing199301 的主题更新
信息提示
请填处理意见