所以我有......
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
答案 0 :(得分:0)
此代码:
int x;
LLIST *mylist[x];
x = 10;
bzero(mylist, sizeof(LLIST *)*y);
有两个问题:
我建议进行两次更改。首先将x的定义和初始化合并为一行。其次,使用sizeof(VAR)
,然后根据类型重新计算大小:
int x = 10;
LLIST *mylist[x];
bzero(mylist, sizeof(mylist));