我试图创建一个具有char指针数组作为其成员之一的结构,并且在试图设置/访问数组元素时遇到了问题。每个字符指针将指向一个malloc'd缓冲区。这是目前的结构。处理指针数组
struct rt_args {
long threadId;
char (*buffers)[];
FILE* threadFP;
};
当我尝试通过
char *buffer = malloc(100);
struct rt_args (*rThreadArgs) = malloc(sizeof(long) +
(sizeof(char *) * (numThreads)) +
sizeof(FILE*)
);
rThreadArgs->buffers[0] = buffer;
访问缓存的元素,我得到错误“无效的数组的使用未指定边界”。我不知道阵列的大小是多少,所以我不能硬编码它的大小。 (我试过取消引用缓冲区[0],并添加第二个索引?我觉得好像它是一个语法错误我在做)
如果我不知道是什么数组的大小?这将取决于投入。 – Danzo
如果您使用的是灵活的数组成员,那么它必须是最后一个成员,并且在使用它之前需要分配空间,取决于您的输入。 – haccks
为什么你需要它是最后一个成员?我认为这不是必需的......这只是一个指针。 – ThoAppelsin