2010-02-11

アマチュアレベル・・・仮にもプログラマ。

お仕事の話。

もうね、未だにアマチュアレベルだなと思った。ダメだ。
こんなミスをするのは伊達じゃない。
バカすぎる。

そんなミスを紹介。

*数値変換ミス

vector array;
・・・arrayに値セット。・・・

atoi((const char*) array[0]));

これですよ。
このとき自分はcharに入った文字を数値に直さなきゃ、とばかり思い込んでいました。
なにがまずいのか、すぐに解ったあなたは流石です。

では答えあわせ。

array[0] = 0x00
が格納されているとして
やろうとしてることは
atoi(0x00);
と同じ。0を0に変換とかおかしいよね。この時点で解りますよね。
さらにatoi関数の正しい使い方は以下。
0x00000000 = atoi("0");

そして、ポインタで0参照するのでセグメントフォルトするという。
バカすぎ。


あとはvector型だからできる、配列比較の論理。
普段STL使ってないから勉強しないとなぁ。
例)vector型AリストとBリストを比較してBリストになかったものを探す。

vector::iterator it;
for(it = BList.begin(); it != BList.end()+ it++)
  if(std::find(AList.begin(), AList.end(), *it) == AList.end()){
    ・・・ // *itはBリストになかった値
  }


find関数・・・便利だなぁ。
イテレータはJavaで先輩が良く使ってたなぁ。。
書かれてるものは解るんだけど、いざ自分が書くときは
イテレータを使おうと思わないんだよなぁ。
イテレータ恐怖症みたいな感じですね。
まぁ、勉強不足なだけなんですけど。


追記
機動戦艦ナデシコBlu-ray BOX【期間限定版】
この間、CM見てたらやっててマジで?!と思い確かめてみたら
ほんとにでるのか・・・。
これは買いだな。
categoryWork  time23:14  authorNEGI 

Comments

コメントはまだありません。

Add Comments



Trackbacks

トラックバック
このエントリにトラックバックはありません
トラックバック送信用URL: http://blog.ns.gs/snx/item_688.html.trackback
(スパム防止のため、このページのURLが含まれない記事からのトラックバックは拒否されます。)
もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。