IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

inline void* operator new( std::size_t size, TGL::Memory::AREA_TYPE newFlag,const char* pszFile,s32 nLine ) throw() { void* ptr = TGL::Memory::Allocater::Malloc( size ,newFlag,pszFile,nLine); # if 0 # ifdef _USE_EXCEPTION // 例外処理を許可しているときのみコンパイル if ( NULL == ptr ) { throw std::bad_alloc(); } # endif # endif return ptr; } inline void* operator new[]( std::size_t size, TGL::Memory::AREA_TYPE newFlag
メモリリークに悩まされている技術者は多いだろう。メモリリークが嫌でGCという技術が開発されたといっても過言ではないし、歴史的にはC++からJavaへシフトが起きた大きな理由のひとつといっていい。Unix系の簡単な定義でいえば、ヒープ領域を指すポインタ(アドレス)をロストしてしまえばそのメモリはもう漏れたといってよい。たとえばこういったコードだ。 struct { int i; char c; } spam; int main(){ void* p; int i; for(i=0; i<1024; ++i){ p = malloc(sizeof(struct spam)); } pause(); } このコードではpause(3)の時点で約5KBのメモリが漏れている。free(3)を使えばメモリをOSに返却できるが、アドレスが分からないので返却できない。 ところが、ここでいいたいのは、メモリ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く