Possible Duplicate:
zero length arrays vs. pointers编译错误,而用C
一些新的编译器扔了编译错误,下面情况
struct test {
int length;
char data[0];
};
int main(void)
{
char string[20] = {0};
struct test *t;
//Some code
memcpy(string, t->data, 19); //Compilation error
}
但是,如果我不喜欢这本得到解决。
memcpy(string, &(t->data[0]), 19);
为什么一些新的编译器正在执行此限制的任何原因?
编辑,以纠正错误
,如果你认为它会请考虑有助于包含您从编译器逐字逐句获得的实际错误。 – unwind
你在x86上使用gcc吗? – pedr0
这种情况发生在icc(intel c编译器) – nkumar