让我们假设我有这样的代码:分配给指针的指针:我是否应该释放它?
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