在函数中声明动态数组

declare dynamic array in function

本文关键字:动态 数组 声明 函数      更新时间:2023-10-16

当大小为变量时,在哪些情况下我应该使用关键字new来分配数组?我正在阅读此代码:https://github.com/Hawstein/cracking-the-coding-interview/blob/master/1.7.cpp

在函数zero()中,为什么row[m]col[n]n是函数变量。

感谢

VLA-可变长度数组是C++语言的非标准扩展,因此您的代码只能使用编译器扩展进行编译

在任何情况下,当你事先不知道数组的大小,并且你不想/不能浪费宝贵的堆栈内存来分配临时内存时,你都应该使用动态分配的内存,或者,如果这对你有用的话,使用std::vector(向量无论如何都会为其元素使用堆内存)

编辑:另一个重要的建议是看看智能指针,它通常比原始指针

更具优势

从不。

现代c++编译器可以处理数组大小的变量。它们只是使用当前在mn中的值。不需要使用new