ポインタの値を自分のクラスベクトルに配置しようとしていますが、メモリエラーを受け取りました。誰でも助けてくれますか?ポインタによるメモリエラー
class myVector
{
int * vector;
int size;
public:
myVector()
{
size = 0;
vector = nullptr;
}
void pushBack(int data)
{
if (size == 0)
{
*vector = data;
size++;
}
else
{
int * tmp = new int[size + 1];
for (int i = 0; i <= size; i++)
tmp[i] = vector[i];
tmp[size + 1] = data;
vector = tmp;
delete[] tmp;
}
}
「ベクトル」に割り当てたものを '[削除]する必要はありません。それは単なるぶら下がりのポインタです。 'delete []'はデストラクタになければなりません。 –
'push = pushBack'のif文のように、' size == 0'のとき、 '* vector = data;'はどうなりますか?それはあなたに答えを与えるはずです。 –
@bkVnet:はい、それはとにかく最初のハードルです。たくさんのものがあります。 –