書籍を読んでいると、char title[64]などとすると、時には[64]では収まらないときや、[64]では大きすぎて無駄なときもある。
そこで、titleの宣言を以下のようにすれば、タイトルの文字列の領域を必要なだけ割り当てることができる。
このようにサンプルプログラムがありますが、mallocにより*titleが指すポインタからlen+1分のメモリを動的に確保しているのだろうと理解しています。
これによって、len+1分のメモリは確保できているとは思いますが、どのようにしてtitleに本のタイトルを格納するのでしょうか。
data->title = "HarryPotter";
data.len = strlen("HarryPotter");
とメイン文に書けばよいのでしょうか?
typedef struct BookData_tag{ char *title; //本のタイトル int len; //タイトルの長さ }BookData; int main(void){ BookData *data; data->title = malloc(sizeof(char)*(len+1));//lenはタイトルの文字数、+1はナル文字の分
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。