LLIST * mylist仍存在问题[x]

时间:2010-01-23 00:21:01

标签: c arrays linked-list

所以我有......

  

int x; LLIST * mylist [x]; x = 10;   bzero(mylist,sizeof(LLIST *)* x);

这似乎不是一个有效的解决方案..

我确实将-std = c99添加到我的make文件中,仅此一项无法正常工作,这就是为什么emil建议使用上述方法,因为我原来是这样的:

  

int x = 10;

     

LLIST * mylist [x] = {NULL};

我的make文件如下所示:

  

CC = gcc CFLAGS = -Wall -g -std = c99

     

LIBS = -lreadline -lm OBJS = llist.o myprogram.o INCLUDES = llist.h

     

全部:$(OBJS)$(CC)$(CFLAGS)$(OBJS)   $(LIBS)-o myprogram

     

.c.o:$ .h $(INCLUDES)$(CC)   $(CFLAGS)-c $ .c

     

clean:rm -f * .o myprogram

1 个答案:

答案 0 :(得分:0)

此代码:

int x; 
LLIST *mylist[x];
x = 10;
bzero(mylist, sizeof(LLIST *)*y);

有两个问题:

  1. 在第3行给出值之前,您正在使用x第2行。
  2. 您在第4行使用变量y。
  3. 我建议进行两次更改。首先将x的定义和初始化合并为一行。其次,使用sizeof(VAR),然后根据类型重新计算大小:

    int x = 10;
    LLIST *mylist[x];
    bzero(mylist, sizeof(mylist));