删除getenv()返回的char数组

G. *_*nov 5 c++ arrays pointers char getenv

我应该释放为char数组分配的内存,该char * getenv( char * )函数返回指针吗?哪种方式 - C free()或C + delete []?如果没有 - 为什么?

我的意思是:

char * ptr = getenv( "LS_COLORS" );
cout << ptr << endl;
delete [] ptr; //Is this or free() call needed?
Run Code Online (Sandbox Code Playgroud)

谢谢.

M. *_* E. 5

原始数据存储在environ变量(它是一个char*数组并包含所有环境变量及其值)中,getenv()只搜索相应的变量名并从environ变量中返回其值的位置,因此您没有释放它,否则可能会发生未定义的行为.