我正在尝试在堆栈上分配一个可变大小的数组。该程序使用c99选项进行编译,但是会生成分段错误。我的调试器显示无法将任何值分配给数组im1。
int main()
{
FILE * file = fopen("./image.jpg", "rb");
fseek(file, 0, SEEK_END);
const long len = ftell(file);
uint8_t im1[len];
for(int i=0;i<len;i++){
im1[i] = 0;
}
我正在MacOS上进行编程,并使用lldb进行调试。 image.jpg大小为14MB。 for循环的设置功能不起作用。有人可以解释为什么会发生吗?
如果可能的话,我想在阵列分配不上堆而是堆最大化计算速度。