在c / c ++

时间:2019-10-10 09:09:11

标签: c++ c

使用C ++时,我偶然发现可以初始化一个数组,该数组的大小由运行时输入的整数确定。 我听说C99允许这样做。在编译中,它不能确定数组的大小。它将堆栈中的内存重新分配给运行中的阵列。我想找到它是如何实现的。 我还听说C允许这样做。这也是C ++无法覆盖所有C的一个例子。是真的吗?

2 个答案:

答案 0 :(得分:4)

在C ++中使用std::vector。向量的存储是自动处理的,可以根据需要进行扩展和收缩。如果没有明确要求,则应避免使用数组,我认为这种情况并不适用。

答案 1 :(得分:0)

可变长度数组仅在C中可用,而在C ++中不可用。

您应该使用动态数组或std :: vector。

size = 17;
int* cxxarray = new int[size];
int* c__array = malloc(sizeof(int)*size);
std::vector<int> vector(size);
cxxarray[7] = 8;
c__array[7] = 8;
vector[7] = 8;
delete[] cxxarray;
free(c__array);
// no need to free vector 
相关问题