【发布时间】:2016-01-16 01:06:59
【问题描述】:
我有一个看起来像这样的结构:
typedef struct TestCase TestCase;
typedef struct TestCase {
char * userName;
TestCase *c[]; // flexible array member
} TestCase;
在另一个文件中,我试图将灵活数组成员设置为 NULL,但这似乎不起作用(我不允许更改它的定义方式)
void readIn(FILE * file, TestCase ** t) {
*t = malloc(sizeof(TestCase));
(*t)->c = NULL; //gives the error
}
我使用双指针,因为这是为我指定的(这不是整个代码,而只是一个片段)。 (因为后面还有代码可以释放分配的变量)。
任何帮助将不胜感激。
【问题讨论】:
-
你得到什么错误?
-
“灵活数组成员的使用无效”
-
请注意,您需要知道有多少条目以某种方式分配给 FAM。我想您可以分配一个额外的指针并将其标记为空,但是当您分配基本结构时,您必须为
c测试用例指针分配空间。这是让它发挥作用的唯一方法。 -
SO 28718198 是相关的(可能值得一读),但它不是这个的副本。