【发布时间】:2014-07-12 11:05:21
【问题描述】:
C 标准禁止 goto 进入存在 VLA 的函数范围。
VLA 和对 alloca 函数的调用在低级别应该具有相同的结果。
(我可能是错的,因为我只是一个 C,不是低级程序员,但在我的想象中似乎很机智)
那么下面的 sn-p 也会是未定义的行为吗?
int main()
{
char *p;
goto label1;
{
p = _alloca(1);
label1:
p = NULL;
}
}
当然我不能引用p,但是行为呢?
【问题讨论】:
-
没有首字母缩写词 - 在这种情况下什么是 VLA?
-
@cup 它在 C 标准文档中是“可变长度数组”的缩写,所以类似于
char Array[variableLength];
标签: c c99 undefined-behavior alloca