お久しぶりです。
基本的な質問申しわけないですが。
関数の引数に short *p があるとします。
このpに対してfree(p)で解放すると delete(p)で解放するとは
何が違うのでしょうか。
そのpの本体の生成法によります?
例えば、他人に渡される関数
f(short *p){
}
があるとします。
pの内容とサイズを変更したい場合、新しいメモリを用意し、
最終的にその新しいメモリのアドレスをpに設定しなければなりません。
ところがこの前に元のメモリ領域が解放しなければならない。
同じpointであっても生成された方法を知らなければ解放できない?
Re:同じpointであっても生成された方法を知らなければ解放できない?
mallocで確保したメモリはfreeで、newで確保したメモリはdeleteで
開放しなければいけないと参考書に書いてあった気がします。
開放しなければいけないと参考書に書いてあった気がします。
Re:同じpointであっても生成された方法を知らなければ解放できない?
malloc : free
new : delete
は二個一です。どちらかで作ったオブジェクトは対になる解放語でなければなりません。
C++言語でnewで生成したオブジェクトをfreeで解放してやるとデストラクタが働きません。
これはやってはならないことです。
new : delete
は二個一です。どちらかで作ったオブジェクトは対になる解放語でなければなりません。
C++言語でnewで生成したオブジェクトをfreeで解放してやるとデストラクタが働きません。
これはやってはならないことです。