- 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; }
|
|