※ ChatGPTを利用し、要約された質問です(原文:メモリ)
メモリについての疑問
このQ&Aのポイント
メモリについてご質問します。char *p; p = (char *)malloc(100); とすればpに100バイトのメモリが割り当てられる・・pに文字列を代入する場合100バイトまで格納可能である。
ファイルからの一行のある部分の文字列を入れる場合、sについてもメモリを取得しなければなりません。その際、whileの外でメモリを取得するのか、whileの中でメモリを取得するのかどちらが適切でしょうか?
while文の中でメモリを作成すると、1回ごとに新たなメモリをとっているのか、それとも更新されていているのかがわかりません。
メモリについてご質問します。
例えば
char *p;
p = (char *)malloc(100);
とすればpに100バイトのメモリが割り当てられる・・
pに文字列を代入する場合100バイトまで格納可能である。
次にファイルからの一行のある部分の文字列を入れる場合
char *s;
while(fgets(buf,1000,fp) !=NULL){
s = GetWord(・・)//何らかの文字列が返ってくる関数です
とする場合このときのsについてもメモリを取得しなければなりません。
その際
s = (char *)malloc(100);
while(/*省略*/){
とwhileの外でとるのか、それとも
while(/*省略*/){
s = (char *)malloc(100);
と中でとるべきなのかどっちでしょう?
というのもwhile文の中でメモリを作成すると
1回ごとに新たなメモリをとっているのか
更新されていっているのかがわかりません。
補足
使いまわすとありますが例えば100バイトとって 最初の一行で10バイトを使用した すると残りは90バイトでしょうか?