在一個函數里面,用new開了一段內存,運算完后,把這個內存的首地址返回,但是怎么delete這個新開的內存呢?int* process(int* arr){int* b = new int[10]; //arr的長度也是10for(int i = 0; i<10; i++)b[i] = *(arr+i) + 1;//delete[] b;//b = NULL;return b;}像這樣的函數,怎么使用delete呢,或者有什么別的方法避免使用new和delete呢?謝謝
2 回答

繁星coding
TA貢獻1797條經驗 獲得超4個贊
#include <iostream>
using namespace std ;
int* process(int* arr)
{
int* b = new int[10]; //arr的長度也是10
//int* b = (int *)malloc(sizeof(int)*10);//另一種申請內存的方法
for(int i = 0; i<10; i++)
b[i] = *(arr+i) + 1;
return b;
}
int main()
{
int arr[]={0,1,2,3,4,5,6,7,8,9};
int *num;
num = process(arr);
for(int i=0;i<10;i++)
{
printf("%d ",*(num+i));
}
delete[] num;//請注意?。∥沂窃谶@里釋放內存
return 0;
}
- 2 回答
- 0 關注
- 1247 瀏覽
添加回答
舉報
0/150
提交
取消