释放指向静态数组的指针

Van*_*nel 2 c++ pointers

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

static const float elementsArray[300] = { ... };
Run Code Online (Sandbox Code Playgroud)

我想要做:

float *elementsPointer = &elementsArray[0];
Run Code Online (Sandbox Code Playgroud)

我相信我能做到这一点,但是......我需要释放elementsPointerdelete

我还需要做其他事吗?

谢谢.

Nik*_*chi 5

不会.elementsPointer指向的内存是静态分配的,不需要调用free.


Mic*_*urr 5

我是否需要免费发布elementsPointer

完全相反 - 你不能释放那个特定的指针值,因为它没有用malloc()或分配calloc().

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