【问题标题】:Still problems with LLIST *mylist[x]LLIST *mylist[x] 仍然存在问题
【发布时间】:2011-01-08 10:50:33
【问题描述】:

所以我有...

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 我的程序

.c.o: $.h $(包括) $(CC) $(CFLAGS) -c $.c

clean: rm -f *.o myprogram

【问题讨论】:

  • 不是什么的有效解决方案?
  • 当我尝试 int x=10; LLIST *mylist[x] = {NULL};当我编译给定编译但不起作用的解决方案时出现错误。

标签: c arrays linked-list


【解决方案1】:

这段代码:

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

有两个问题:

  1. 在第 3 行给它一个值之前,您正在使用 x 第 2 行。
  2. 您在第 4 行中使用了变量 y。

我建议更换拖车。首先将 x 的定义和初始化合并为一行。其次,使用sizeof(VAR),而不是根据类型重新计算大小:

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

【讨论】:

  • 抱歉打错字了:bzero(mylist, sizeof(LLIST *)*x);
  • 好的..我想我能够让它工作...我会试试看谢谢你的帮助。
猜你喜欢
  • 2011-01-08
  • 2011-01-08
  • 1970-01-01
  • 2012-09-06
  • 2010-11-14
  • 2014-02-19
  • 1970-01-01
  • 1970-01-01
  • 2015-01-15
相关资源
最近更新 更多