我正在用C++写一个程序。在我的程序中,我需要在一个函数中创建一个动态大小的数组,但这个数组也应该可以被其他函数访问。我不会在这里发布我的代码,只写一个虚构的例子。
char *array;
void function_1() {
array = new char(3);
array[0] = "value 1";
array[1] = "value 2";
array[2] = "value 3";
}
void function_2() {
array[0] = "new value 1";
}
int main() {
function_1();
function_2();
delete[] array;
}我的问题是:我不确定数组是否会存在于初始化它的function_1之外,直到我定位数组的内存。或者数组在一个函数中只有一个局部变量的行为。这意味着,存储数组值的内存将在函数完成后被重新定位,并且我的数组的内存地址可以在稍后的程序中用其他东西重写。
谢谢。
发布于 2011-06-19 07:24:02
因为array是全局的,所以它对其他函数是可见的。在被delete[]释放之前,使用new[]分配的内存会一直存在。
https://stackoverflow.com/questions/6399500
复制相似问题