std::stackの末尾要素のdeleteについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: std::stackの末尾要素のdeleteについて

Re: std::stackの末尾要素のdeleteについて

#3

by Y氏 » 7年前

ああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!僕がバカでしたあああああああああああああああああああああああああああああああああ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!出来ました!!ありがとうございます!!ありがとうございます!!!!!

Re: std::stackの末尾要素のdeleteについて

#2

by Bull » 7年前

18 行目ですが、

コード:

	delete sTest.top;
sTest.top は関数なので、delete はできないと思いますが、コンパイルエラーになりませんか。

コード:

	delete sTest.top();
とすればいいのではないでしょうか。

std::stackの末尾要素のdeleteについて

#1

by Y氏 » 7年前

コード:

#include <stack>
#include <iostream>
using namespace std;
class Test {
public:
	Test() {
		cout << "オブジェクト生成" << endl;
	};
	~Test() {
		cout << "オブジェクト削除" << endl;
	};
};
void main() {
	int stop;
	cout << "Stack" << endl;
	stack<Test*> sTest;
	sTest.push(new Test);
	delete sTest.top;
	sTest.pop();
	cin >> stop;
}
ゲーム制作中、シーン管理をstackを使って実装したところpopしたシーンのメモリが解放されないことに気付き、開放する手段がないか試すために上記のコードを組みました。結果、delete出来ないことが分かったのですがなぜなのですか?

ページトップ