MALLOC A
MALLOC B
MALLOC C
MALLOC D
とする場合、
使ったメモリを開放する場合は
FREE(D)
FREE(C)
FREE(B)
FREE(A)
の順番でいいのでしょうか?
もし、順番を狂わせるとどんなことが起きるのでしょうか?
割り当てたA,B,C,Dが何らかの関係を持っていいたら
別ですが、互いに無関係なら順番は気にしなくても
いいと思います。
試しに実験してみたらどうです?
そうですか?
ありがとうございます。
static *float A;
とか
static *int B;
とするとfreeをしても、
その配列の中身は保存されているのでしょうか?
それとも、やはり残念ながら消えてしまうものなのでしょうか?
static宣言して確保される領域は宣言した部分だけだと思います。
ので
static *float A;
ならfloat型のポインタ分のsizeof(float *)のみです。
繰返すようですが、これくらいなら実験したほうが早いですよ。
その上で分からないことがあれば質問するのがこの手の掲示板の
上手な?利用法だと思います。
まず宣言のしかたが間違ってるみたいだけど
コンパイルでwarningでてません?
> static *float A;
> static *int B;
ちなみにcかc++の質問で
MALLOC Aというのはp = malloc(?);で
FREE (A)というのはfree(p);なんだよね?
ヒープの関係でたまたま前の情報が残っている事もあるし
残ってない事もありうる
でもfree(p);を実行したあとに*pをアクセスしてはいけません
> それとも、やはり残念ながら消えてしまうものなのでしょうか?
残念ながらではなくfree(p);とした時点で破棄してくれと
Shimadaさん自身が命令しているんですよ
その後もアクセスしたければ、free()を呼ぶタイミングを
変更しなければなりません