bcc55 + Windows で C 言語の勉強をしている者です。
構造体 と バイト配列で変換ができないかどうか
教えて頂きたいです。
以下のようなコードで一括で配列から構造体に
データを格納したいのですが、スマートなやり方は
ありませんでしょうか?
#include <stdio.h>
// 10,"test" を 20,"TEST" に
typedef struct
{
char x; // 8 bit (int は 32 bit)
char c[5]; // 8 bit
}hoge_t;
void main()
{
hoge_t hoge;
char s[]="test";
int i;
char value[]={20,0x54,0x45,0x53,0x54}; // 20,"TEST"
// hoge の初期化 ("test", 10 を入れる)
for(i=0;i<sizeof(s);i++) hoge.c[i]=s[i];
hoge.x=10;
// 表示
printf("%d ", hoge.x);
printf("%s", hoge.c);
printf("\n");
// for(i=0;i<sizeof(value);i++) hoge[i]=value[i]; // こう言う具合に代入したかったが以下のエラーが発生
// エラー E2110 test.c 24: 互換でない型変換(関数 main )
// エラー E2062 test.c 24: 無効な間接参照(関数 main )
// 上記のように一括で代入できないので、以下のように2行で代入する
hoge.x=value[0];
for(i=1;i<sizeof(value);i++) hoge.c[i-1]=value[i];
// 表示
printf("%d ", hoge.x);
printf("%s", hoge.c);
printf("\n");
}