所以我有...


  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 = -readline -lm OBJS = llist.o myprogram.o INCLUDES = llist.h
  
  全部:$(OBJS)$(CC)$(CFLAGS)$(OBJS)
  $(LIBS)-o myprogram
  
  .c.o:$ .h $(包含)$(CC)
  $(CFLAGS)-c $ .c
  
  干净:rm -f * .o myprogram

最佳答案

这段代码:

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


有两个问题:


您正在使用x第2行,然后在第3行给它赋值。
您在第4行中使用变量y。


我建议更换两个。首先将x的定义和初始化结合在一起。其次,使用sizeof(VAR),然后根据类型重新计算大小:

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

关于c - LLIST * mylist [x]仍然存在问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2121456/

10-11 23:29