newについて – プログラミング – Home

通知
すべてクリア

[解決済] newについて


WAT
 WAT
(@WAT)
ゲスト
結合: 17年前
投稿: 6
Topic starter  

newについて質問があります。

<質問1>
下記のようなプログラムを実行し、
「int* p = new int;」でブレークし、ステップインすると、
「NEW.CPP」のファイルに飛んでしまいます。何もインクルード
していないのに、「NEW.CPP」のファイルに飛んでしまうのでしょうか。

<質問2>
「new」の戻値の型は「void*」なのに、
「int*」に自動的に型変換されるのでしょうか。

分かる方いらっしゃいましたら、お願いします。

void main(void)
{
int* p = new int;
}

環境:VC6


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

> 「NEW.CPP」のファイルに飛んでしまいます。何もインクルード
> していないのに、「NEW.CPP」のファイルに飛んでしまうのでしょうか。

operator new はランタイムライブラリに用意された関数に変換されます。
つまり普通の関数呼び出しと同じなのです。

>「new」の戻値の型は「void*」なのに、
>「int*」に自動的に型変換されるのでしょうか。

YES. コンパイラが適切な型にキャストします。


返信引用
WAT
 WAT
(@WAT)
ゲスト
結合: 17年前
投稿: 6
Topic starter  

ご回答ありがとうございます。
理解することができました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました