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)关于我认为更好的方式来处理这个问题。 –