質問: moji[n].d;) (1)struct list_kouzou{ int a; char b[30]; char c[8]; }data[100]; (2)struct list_tai{ char d[30]; }moji[15];
回答: ★アドバイス >標準関数などがないということはわかったので、 ↑ memcpy() 関数が利用できます。→回答者 no.2 さんを参考に。 strcpy() 関数も利用できるかも。→回答者 no.1 さんを参考に。 ※char b[]、char d[] が文字列ならば strcpy() 関数が利用できますが、何かのデータ ならば安全のために memcpy() で配列全体をコピーします。データ内容によって決める。 >地道に代入を行いたいです。 ↑ ループを組んで代入したいのですか。 それなら下のサンプル関数などを作ってコピーしてみる。 サンプル関数: void listcopy( struct list_kouzou *data, struct list_tai *moji ) { char *pdata = data->b; ←list_kouzou 構造体の char b[30] へのポインタ char *pmoji = moji->d; ←list_tai 構造体の char d[30] へのポインタ int i; for ( i = 0 ; i < sizeof(data->b) ; i++ ){ *pdata++ = *pmoji++; ←地道にコピー } } // 使い方 int main( void ) { struct list_kouzou data[ 100 ]; struct list_tai moji[ 15 ]; int n; /* 構造体 data、moji への代入処理 */ for ( n = 0 ; n < 15 ; n++ ){ listcopy( data[n], moji[n] ); ←イメージに近い処理(data[n].b = moji[n].d) } /* その他の処理 */ return 0; }