if(p > size){
free(l);
l = dgetmem(p+p+2);
b = l + p + 1;
size = p;
}
質問.1 mallocやcallocがないのに、
freeは使えるのですか?
質問.2 文中に出てきた
dgetmemって、ご存知ですか?
順番が逆ですけど、
> 質問.2 文中に出てきた
> dgetmemって、ご存知ですか?
自作の関数か引数付マクロだと思われますが。
提示された部分以外のソースに定義されているのでは?
#簡単にMSDNでdgetmemを探したがみつかりませんでした。
> 質問.1 mallocやcallocがないのに、
> freeは使えるのですか?
提示されている部分では、mallocやfreeが使用されていないだけで、
提示されていない部分で、使用されていれば全く問題ないのでは?
提示されたソースには、変数'l'の宣言などもありませんが、
'l'にNULLが代入されていれば、free(NULL)でも問題なかったと思います。
提示された情報(ソース)だけでは、情報不足で、以上のことぐらいしか回答できないと思いま
す。
>質問.1 mallocやcallocがないのに、
> freeは使えるのですか?
仮に提示されている部分だけのソースでプログラムが作成されているとするなら
このfreeには意味がないような気がします。
KING・王さんが書かれているように'l'が0なら別に悪さもしません。
'l'が0以外でmallocやcallocで確保されたアドレスでないならプログラムが
不正終了しそうですけれど。
>質問.2 文中に出てきた
> dgetmemって、ご存知ですか?
私も知りません。
少なくとも標準ライブラリの関数ではないと思います。
パッと見ると提示された部分のコードだけでプログラムが成り立っているとは思えません。
dgetmemがどんなものなのかとか、実際に動作するのに必要なソースを全部確認しないと
無理でしょう。
もし手元に提示された部分のソースしかないのでしたら解析するのは諦めた方がいいと
思います。
雲をつかむような話です。
