【发布时间】:2019-12-08 13:37:17
【问题描述】:
当我使用 gcc 编译以下代码时,它可以正常工作并按预期显示正确的输出,但是当它使用 Visual c++ 移动到 Windows 时,它会在编译时报告错误。
#include <stdio.h>
int fun(int numAttrib)
{
typedef struct {
int attribList[numAttrib];
}VADataFull;
printf("size=%ld\n", sizeof(VADataFull));
return 0;
}
int main(int i, char** args)
{
fun(i);
return 0;
}
其实我可以理解为什么vc++不能工作,因为正如我们在shool中学到的,我们不能在堆栈中动态分配内存,但是gcc工作正常,所以我感到困惑,谁能告诉我更多关于这个问题的信息,谢谢
【问题讨论】:
-
因为 GCC 实现了它们as an extension to the language。
标签: c++ gcc visual-c++ compilation stack-memory