私の同僚の 1 人が、次を使用してグローバル変数を宣言し、初期化しましたnew
。
#define MAX_SIZE_TABLES (1024 * 1024)
unsigned char * ImageBuf = new unsigned char[MAX_SIZE_TABLES];
コードは、Microsoft Visual Studio 2010 Premium を使用してエラーなしでコンパイルおよびビルドされます。
私の質問:
これは、標準または未定義の動作によって合法ですか?
関数呼び出しがない場合、メモリはいつ削除されますdelete
か?
編集 1:「変数の宣言」の後に「初期化済み」を追加しました。