gpt4 book ai didi

c++ - 可变大小数组的范围

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:27:23 24 4
gpt4 key购买 nike

这是否总是会按预期运行?

char *x;
if (...) {
int len = dynamic_function();
char x2[len];

sprintf(x2, "hello %s", ...);

x = x2;
}

printf("%s\n", x);
// prints hello


编译器(在我的例子中是 GCC)如何在 C 和 C++ 中实现可变大小的数组?

最佳答案

没有。 x2if 语句作用域的局部变量,您可以使用指针在它之外访问它。这会导致未定义的行为。

顺便说一句,VLA 在 C11 中是可选的,并且从未成为 C++ 的一部分。所以最好避免它。

关于c++ - 可变大小数组的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14389006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com