私は、intの配列を指すポインタの配列を持っています。 私はハードコードされたint配列を作成しました(下の '配列'をチェックしてください)、ポインタの配列に挿入したいと思います。 intの配列を指しています。動的に割り当てられたギザギザの配列を削除する
コンパイルは正常です。警告なし。 正常に動作します。そしてうまく閉じます。 少なくとも、現在コメントされている削除文をデストラクタに導入しています。
この時点で私のコンパイラがより良いデストラクタを作ってくれると想像していますが、私が間違っていることに興味があります。ターミナルウィンドウは巨大なメモリマップを投げるだけです。グーグルと検索することはあまり役に立たなかった。
class foo {
public:
int **bar;
int aSize;
//CONSTRUCTOR
foo(int aSize) {
this->aSize = aSize;
bar = new int*[aSize];
for (int i=0;i<aSize;i++) {
bar[i] = new int[aSize + i];
for (int j=0;j<(aSize + i);j++) {
bar[i][j] = 0;
}
}
}
void myfunc(int *pointer) {
bar[0] = pointer;
}
~foo() {
for (int i=0;i<aSize;i++) {
//delete[] bar[i];
}
delete[] bar;
}
};
int main() {
foo *obj = new foo(5);
int array[] = {1,2,3,4};
obj->myfunc(array);
delete obj;
return 0;
};
私は恐らく何か悲劇的なことをしたことは知っています。私はまだそれが何であるかを知らない。 STLやその他のテンプレートを使用していない理由があります。これは単にこれを学ぶことに興味があるからです。 最大の批判をいただきました。
ちょっと、明らかな答え...暑い天気。ありがとう。 int i = 0からi = 1に変更しました。 – dcousens
暑いですか? [あなたを羨ましい](http://www.weather.com/weather/today/New+York+NY+USNY0996?from=search_city "私はあなたを羨ましい") –
配列の削除は[]のみできます'new'ではなく' new [] 'を使って割り当てられます。マイナーニット。 – Puppy