我有一个我已创建的结构文件,并试图让它显示在我的main函数中。我一直收到错误:
for /D %%G in ("*") DO (
Pushd %%G
set dir1=%%G
sqlldr bods/password@SERVERBODS DATA=%dir1%/001.%dir1% CONTROL=ctl/001.ctl LOG=log/001.log BAD=bad/001.bad DISCARD=dsc/001.dsc
Popd
)
lab2Structure.h:11:1:错误:预期的标识符或'('''''''''''''''''''' {
我该如何解决这个问题? 这是我的structure.h文件:
" error: initializer element is not constant
struct childrensBooks *book1 = (struct childrensBooks *) malloc(sizeof(struct childrensBooks)); //Structure of book #1
^
}
答案 0 :(得分:0)
您不能像外部函数和头文件那样编写已执行的代码。 H代表定义,函数体的C文件。
答案 1 :(得分:0)
对于如何初始化指针内存,您似乎混淆了两种不同的约定。您正在使用malloc调用来分配内存,就像您计划将其用作指针一样Initializing a pointer to a structure,但是您似乎正在尝试将这些内容组合在一起,如How to initialize a struct in accordance with C programming language standards。
无论您决定使用哪种,都不要在头文件中定义所有这些信息。我知道它看起来很方便,除了头文件之外的所有文件都应该只留给加载到符号表中的内容。更简单地说,如果你声明一个变量将它放在一个C文件而不是一个H文件中。 (我对此略有概括,但对于你的情况,这似乎是合适的)。