トップページ > プログラム > 2015年10月05日 > bX1BWxYn

書き込み順位&時間帯一覧

16 位/133 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000020000002



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net

書き込みレス一覧

C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
383 :デフォルトの名無しさん[sage]:2015/10/05(月) 17:10:32.54 ID:bX1BWxYn
構造体配列の宣言と使い方ですが、
レコード id(4バイト),名前(20バイト),データ(16Kバイト),属性(256バイト)が
100個あったとしたら、以下のような感じで宣言と別関数に渡せばよいのでしょうか?

typedef struct record{
unsigned long id;
unsigned char name[20];
unsigned long data[16*1024/4];
unsigned char attirbute[256];
} record_t;

void ref_func(recort_t *hoge, int cnt){
int i;
for(i=0; i<cnt; i++){
hoge[i].data = 0xaa55;
}
}
C言語なら俺に聞け(入門編)Part 130 [転載禁止]©2ch.net
384 :デフォルトの名無しさん[sage]:2015/10/05(月) 17:11:44.77 ID:bX1BWxYn
int main(void){
record_t hoge[100];
int num_array, i;
num_array = sizeof(hoge)/sizeof(record_t);

/*初期データ*/
for(i=0; i<num_array; i++){
hoge[i].id = i;
strncpy(hoge[i].name, "abc", sizeof(hoge[i].name));
hoge[i].data = 0x9876;
}
/*別関数で参照・更新*/
ref_func(hoge, cnt);

/*更新後*/
for(i=0; i<cnt; i++){
printf("id=%d, name=%s, data=%x\n", hoge[i].id, hoge[i].name, hoge[i].data);
}
return 0;
}


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。