所以我有...
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/