【发布时间】:2016-02-01 23:51:40
【问题描述】:
考虑以下代码:
int *expand_array(int *old_arr,int array_length)
{
int *new_arr = new int[array_length +3];
for(int counter=0;counter<array_length;counter++)
new_arr[counter]=old_arr[counter];
delete[] old_arr;
return new_arr;
}
int main()
{
int *my_first_arr = new int[4];
int *my_expanded_arr=expand_array(my_first_arr,4);
delete[] my_expanded_arr;
}
这里会有内存泄漏吗? 为了概括这个问题, 如果从新语句返回的指针被复制,传递给函数或分配给不同的指针,删除复制指针会释放内存吗?
【问题讨论】:
标签: c++ c++11 visual-c++ c++14