文字列配列をメンバにもつ構造体の,メモリ動的確保
下に同様の質問があるのですが,やはり理解できません.
文字列配列をメンバにもつ構造体の,メモリを動的に確保をしたいのですが,うまくいきません.
具体的には以下のようです.
正しくはどのようにすればよいでしょうか.よろしくお願いします.
typedef struct {
char **boy;
char **girl;
} Name_class;
int init_name_class(Name_class name_class, int n_boy, int n_girl)
{
int i;
name_class.boy = (char**) malloc( n_boy * sizeof(char**) );
for(i=0; i<n_boy; i++)
name_class.boy[i] = (char*) malloc( 32 * sizeof(char*) );
name_class.girl = (char**) malloc( n_girl * sizeof(char**) );
for(i=0; i<n_girl; i++)
name_class.girl[i] = (char*) malloc( 32 * sizeof(char*) );
}
main(int argc, char *argv[])
{
int i, j, n_boy=3, n_girl=2;
Name_class name_class;
init_name_class(name_class, n_boy, n_girl);
name_class.boy[0] = "yukio";
name_class.boy[1] = "hideaki";
name_class.boy[2] = "mitsuru";
name_class.girl[0] = "youko";
name_class.girl[1] = "chiharu";
printf("%s, %s, %s, %s, %s\n", name_class.boy[0], name_class.boy[1], name_class.boy[2], name_class.girl[0], name_class.girl[1]);
}
お礼
ありがとうございます。