- 締切済み
2次元配列の数値管理をポインター操作で行いたい
こんにちは。ちょっとわかりにくい説明かと思います。 行いたいイメージは byte test[2][X]= { {0,0,0,0,0},{1,1,1,1,1} }; というデータ配列Xの数が変動するので Mallocを使用して動的にメモリを確保したい。(ここでは例として5つとってますが) それをポインター変数により管理したいと考えています。 byte *test; byte num= 5; test = (byte *)MALLOC(sizeof(byte)*(2*(num))); というようにメモリを確保した後 ある文字列("01001"というような文字列)をこの配列にコピーしたい。 配列のイメージでは test[0]={{0,1,0,0,1}}; test[1]={{1,0,0,1,1}}; というような形で管理したいと思ってます。 pBuffer="01001"; memcpy(pBuffer, test[0], 5); pBuffer="10011"; memcpy(pBuffer, test[1], 5); このように実装しました。 これであってますでしょうか? さらに、ここからデータを取得したい場合 例えば二次元配列でいう test[0][1]に入っている(この例題では)1を取り出すには どのような記述になるのでしょうか? わかりにくい記述で申し訳ないですが、 ご存知の方、よろしくご教授ください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
やりたいことがよくわからないのでメモリ確保のところだけですが, byte *test[2]; int num = 5; test[0] = malloc(sizeof (test[0][0])*num); test[1] = malloc(sizeof (test[1][0])*num); とすれば普通の 2次元配列と同じアクセスできます.
お礼
ご返答ありがとうございます。 とても参考になりました。