C++ newb here。我正在嘗試使用指針來編寫我自己的數組實現,並且我碰到了一堵牆,我不知道如何克服。用指針算術釋放內存
我的構造函數拋出這個錯誤
array.cpp:40:35: error: invalid conversion from ‘int*’ to ‘int’ [-fpermissive]
當我的數組初始化我希望它騰出數組整數中的所有空間。
Array::Array(int theSize){
size = theSize;
int *arrayPointer = new int;
int index = 0;
while(theSize > index){
*(arrayPointer + index) = new int; //This is the trouble line.
++index;
}
}
我在做什麼錯了stackoverflow?
那麼,對於初學者,你試圖單獨分配每個元素,當有一個內置的'new int [size]'語法來分配數組時;-) – Cameron
使用'new int [size]'也同樣糟糕(可能更糟糕)。對於一個容器,你通常希望使用'buffer = operator new(size);'來分配原始存儲空間,接着放置new以在該空間中創建對象:'new(buffer + pos)int(value);' 「int」很少,但其他類型更多。 –
由於這個問題經常出現,並且幾乎總是會產生一些我認爲大部分都是錯誤的答案,所以我寫了一篇[博客文章](http://coderscentral.blogspot.com/2012/08/c-dynamic-arrays)。 HTML)關於我認爲更好的方式來處理這個問題。 –