我有一个Image类,最初我不知道图像的尺寸,所以我只是将data_
指针初始化为大小为0的数组。稍后当我找到图像信息时,我会重新初始化data_
为新的大小。这样做会在内存上创建任何问题吗?是否有更简洁的方法来实现这个目标?
下面是我编写的类:
class Image
{
private:
int numRows_, numCols_;
unsigned char* data_;
public:
Image() : numRows_(0), numCols_(0), data_(new unsigned char[0])
{}
void setData(int r, int c, unsigned char* data)
{
this->numRows_ = r;
this->numCols_ = c;
this->data_ = new unsigned char[r*c];
for (int i = 0; i < r*c; i++)
{
this->data_[i] = data[i];
}
}
int rows();
int cols();
unsigned char* data();
~Image();
};
感谢您的提前帮助。
nullptr
有什么不可取的理由吗? - RotemsetData
中,如果data_
已经被初始化并指向其他数据,会怎样? - Some programmer dudestd::vector
是一个 C++ 标准库中的容器,它可以动态调整大小,存储任意类型的对象,并支持随机访问。 - Lightness Races in Orbit