• ベストアンサー

メモリ上に配置されていないバイト配列を代入

memcpyでメモリ上に配置されていないバイト配列を代入する方法を教えて下さい。 #include<iostream.h> int main() { char str[3]; memcpy(str,"aa",3); printf("%s",str); return 0; } これは分かるんですが、バイト配列では"aa"のところに何を書けばいいんですか? memcpy(str, (char *){0x61,0x61,0x0}, 3);ではコンパイルできませんでした。 str[0]=0x61;のように1つずつなら代入できるんですが、配列ごとの方法が分かりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • nakashi
  • ベストアンサー率51% (21/41)
回答No.2

memcpy(str, "\x61\x61\x00", 3);

amurit
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.1

char str[3]; const char aa[] = {0x61,0x61,0x0}; memcpy(str,aa,3); とすると話が早いですが。 「メモリ上に配置されていないバイト列」とはいっても、 プログラムのどこかには記録しておく必要があるわけだから、 結局メモリ上になってしまいます。

amurit
質問者

補足

結局はメモリ上への配置にしたいんですが、値を代入する前に {0x61,0x61,0x0}; をメモリ上に配置したくないんです。 char型だと、""を使えばその部分のポインタということにできますが、 BYTE型の場合はそうはいかなくて悩んでいます。

関連するQ&A

専門家に質問してみよう