FC2ブログ
戯言徒然日記開発日記東方DTMC/C++DoJaLuaCG備忘録
気が向いたら創作活動とかしてる人のチラシの裏。
--.--.-- --
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2009.01.26 Mon

 リハビリにコーディングするよー。


 やってみた。たった2週間弱?ほど触れてないだけで頭が回ってない件orzやはり特化型というかなにかやり出したらそればっかりになるのが良くないのかな。もっとマルチに行こう。というか普通に疲れてるだけってオチもありますが。(こうなることを見越して明日は年休とってある♪)

 ArrayList らしきものが一旦完成しました。むしろ検証が面倒なので完成にしました(笑)一応、こんな感じでテスト。

 

array_list<int>* list = New array_list<int>( 1024 );
array_list<int>* list2 = New array_list<int>( 1024 );

for( int i = 0; i < 1024; i++ )
{
    list->add( New int( i ) );
}

for( int i = 0; i < 1024; i++ )
{
    list2->add( list->get( i ) );
}

list->remove( 3 );
printf( "%d", *(int*)list2->get( 3 )->get_ptr() );

 

ちなみに New ってのは下みたいなの 。

#if defined(_DEBUG) && !defined(New)
#define New  ::new(_NORMAL_BLOCK, __FILE__, __LINE__)
#else
#define New  new
#endif

これを #include <crtdbg.h> の前で宣言しておいて、

// メモリリーク検出
_CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );

とすることでメモリリークしたメモリがソースのどこで new したものか検出してます。

 

横道にそれましたが、list->remove( 3 );でリストから削除した後でprintf...のところで参照して問題なく中見れてます。

(※見れてるように見える。list2->get(3)->get_ptr()が無印list->get(3)->get_ptr()と同一かあたりも見なきゃいけないような気がしますがいいとします。眠いし。)

 

なんか不具合あれば趣味レベルの開発なのでその場で戻って作り直せばいいかなぁ。なんていうノリでこれ使っていろいろ実装していきます。

 

(でも今手元にソースないので少しだけおあずけかなぁ・・・)


管理者にだけ表示を許可する

Template by まるぼろらいと
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。