soraなりの日々 - fc2 -

こころにひっかかったもの

コードの中心でiをさがす -二次元配列編-


その次元の話をしているわけではないのだよ。その次元では。

このエントリーをはてなブックマークに追加







char (*b)[6] ・・・6つの領域を持った
char型の配列へのポインタ

char *b[6] ・・・char型のポインタが
6つある配列


C/C++をやってる限り避けられないわけで・・。

今やってる仕事で、どうしてもstlが使えない状況。
dllとexeの関係だし、vcのコンパイラ自体のバージョンが違うのが致命的(6.0 & 7.1)。
だから、std::vectorもstd::stringさえも、もちろん使えない。。。
無理やっこ、stl宣言してポインター使って渡すってのもなんだか恐い。

な・の・で、char

元がstd::vector使ってstd::stringをリストで持つように考えてたので、
charで代用しようと思ったなら、必然的に二次元配列へ。
二次元配列なんて、なんか久しぶりな気がする。。。

まずは宣言。
文字列自体の最大長は決まってるんで、こんな感じ↓








char (*sz)[10];


そして、new使って動的に確保↓








sz = new char[5][10];


んで、これが全体の流れ↓








    char (*sz)[10];
    sz = new char[5][10];

    strcpy( sz[0], "August" );
    strcpy( sz[1], "September" );
    strcpy( sz[2], "October" );
    strcpy( sz[3], "November" );
    strcpy( sz[4], "December" );

    disp( sz, 5 );

    delete [] sz;


二次元配列の受け取り側の関数dispの宣言はこんな感じになる↓








void disp(char (*sz)[10], int size)


これでバッチリ。

環境:PowerBook G4 1.25 GHz memory 1 GB
  :gcc version 4.0.1 (Apple Computer, Inc. build 5363)
このエントリーをはてなブックマークに追加

コメント

コメントの投稿


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

トラックバック

トラックバックURLはこちら
http://sora2hs.blog70.fc2.com/tb.php/39-37f5557e
この記事にトラックバックする(FC2ブログユーザー)