我在头文件中声明了以下数组。
static const float elementsArray[300] = { ... };
我想这样做:
float *elementsPointer = &elementsArray[0];
我确信我可以做到,但是......我是否需要elementsPointer
发布delete
?
我还需要做其他事吗?
谢谢。
答案 0 :(得分:5)
没有。 elementsPointer指向的内存是静态分配的,不需要调用free。
答案 1 :(得分:5)
我是否需要免费发布elementsPointer
恰恰相反 - 您必须不释放该特定指针值,因为它尚未使用malloc()
或calloc()
分配。
如果该指针有时可能被赋值为动态分配的值,则需要安排(可能带有标志)仅使用那些内存块调用free()
(如果代码使用{{1}负责释放那个记忆。)
答案 2 :(得分:2)
不要发布elementsPointer
; elementsArray
仍然存在。实际上,你不能free()
任何静态声明的数组。