gpt4 book ai didi

c++ - 关于操作 native 数组的快速问题

转载 作者:太空宇宙 更新时间:2023-11-04 05:22:50 24 4
gpt4 key购买 nike

#include <iostream>

int
main(void)
{
int n;
std::cin >> n;

int x[n];

return 0;
}

从 C 的角度来看,上面的代码不应该被正确编译,因为数组 'x' 的大小还没有定义,我想。

只有在用户为变量'n'传递参数后,才能定义'x'的大小,但代码在编译和运行时没有崩溃,我想知道为什么。

如果它是用 C 语言编写的,我认为人们会使用 malloc 来实现运行时可配置数组。

也许我对数组、内存分配、编译器以及c和c++的关系有一些误解。如果我错了,请纠正我。

最佳答案

不,从 C 的角度来看代码是无效的,因为 <iostream>不是 C 头文件并且 std::cin是语法错误。另一方面,int x[n];部分会很好:它是一个可变长度数组,这是 C99 中首次引入的功能。

标准 C++ 没有可变长度( native )数组。 g++ allows them as an extension , 虽然:

Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++.

通常,在 C++ 中,您会使用 std::vector .

关于c++ - 关于操作 native 数组的快速问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53367217/

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