释放指向静态数组的指针

时间:2010-12-13 16:43:40

标签: c++ pointers

我在头文件中声明了以下数组。

static const float elementsArray[300] = { ... };

我想这样做:

float *elementsPointer = &elementsArray[0];

我确信我可以做到,但是......我是否需要elementsPointer发布delete

我还需要做其他事吗?

谢谢。

3 个答案:

答案 0 :(得分:5)

没有。 elementsPointer指向的内存是静态分配的,不需要调用free。

答案 1 :(得分:5)

  

我是否需要免费发布elementsPointer

恰恰相反 - 您必须释放该特定指针值,因为它尚未使用malloc()calloc()分配。

如果该指针有时可能被赋值为动态分配的值,则需要安排(可能带有标志)仅使用那些内存块调用free()(如果代码使用{{1}负责释放那个记忆。)

答案 2 :(得分:2)

不要发布elementsPointer; elementsArray仍然存在。实际上,你不能free()任何静态声明的数组。