讓我們假設我有這樣的代碼:分配給指針的指針:我是否應該釋放它?
for (int i=0;i<n;i++) {
//compute z
float *p = (float *) malloc (sizeof(float)*z);
//do something with p
}
注意p
不使用其他任何地方和每個for
週期獨立於其他。
讓我們假設z
沒有那麼大,所以單p
不memmory方面貴。但是,n
可能很大,因此p
所佔用的總內存可能會一致。
是否正確free()
它:
for (int i=0;i<n;i++) {
//compute z
float *p = (float *) malloc (sizeof(float)*z);
//do something with p
free(p);
}
獎金的問題:如果時間的表現將是優先級(而不是內存的消耗),效果會更好,避免free(p)
,因爲它耗時?
爲什麼C++標籤在這裏? –
@EdgarRokyan你是對的。 – justHelloWorld