配列の配列をmemcpyやmemcmpしたいです
【環境】WindowsXP(SP2)、VisualStudio2005++(MFC)
タイトルの通りなんですが、配列の配列を比較したりコピーしたいのですが、以下に質問を3つ記載させていただきますので、どなたかご教授お願いいたしますm(__)m
1.宣言と初期化について
char **buf;
buf = new char*[3200];
for(int i=0; i < 3200; i++)
{
buf[i] = new char[4];
}
これで、buf[1]、buf[2]、buf[3]、buf[4]に、それぞれ3200のchar型の配列が宣言された事になりますでしょうか?
※buf[4][3200] なのか buf[3200][4]なのかよく分からないです。
2.上記の方法で定義した2つの配列(bufとtmp)の比較
for(int i =0; i < 4; i++)
{
memcmp (buf[i], tmp[i], sizeof(tmp[i]));
}
これで比較出来ますでしょうか?
3.上記の方法で定義した2つの配列(bufとtmp)のコピー
for(int i =0; i < 4; i++)
{
memcpy_s(buf[i], sizeof(buf[i]), tmp[i], 3200 * sizeof(char));
}
これではバッファオーバーランエラーが発生してしまうのですが、どこがおかしいでしょうか?
以上3点、初心者の質問なので意味が分からないような箇所があるとは思いますが、どうかご教授お願いいたしますm(__)m
お礼
詳しいご説明をいただき、大変参考になりました。問題も解決いたしました。 ありがとうございました。