我是一名學生,是C++的初學者,在課上我們正在練習指針,動態數組和函數。我寫了一個沒有錯誤的程序,並做了它必須做的事情。我的問題是它沒有刪除動態數組。 我們被要求把刪除[]功能函數可以在不刪除動態數組的情況下工作。程序工作並且沒有錯誤
#include <iostream>
using namespace std;
char* Function (char c[], int numbers[]){
int k=0;
for (int i=0; i< 4;i++){
k+=numbers[i];
}
k++;
char *result = new char[k];
char *counter=result;
for (int i=0; c[i]!='\0';i++)
{
int index = numbers[i];
for (int j=0; j< index; j++)
{
*counter=c[i];
counter=counter+1;
}
}
*counter='\0';
return result;
}
int main()
{
char c[]="abcd";
int numbers []={1,2,3,4};
char d[]="ghj";
int numbersx []={2,1,1};
cout << Function(c,numbers);
cout << Function(d,numbersx);
return 0;
}
這是我不清楚其中刪除[]將被定位在這種情況下里面。 我已經搜了this recommends that i put the delete inside main 其他回答不回答我的確切問題。
建議作爲一個很好的做法。它的小陣列的情況下,它沒有任何區別;但是對於大型陣列,您需要使用它來釋放內存。 –
噢好吧,我不知道應該在哪裏放置刪除 – Igna
它通常放在最後,當你不再需要數組。 –