删除Char Array由GetEnv()返回
题
我是否应该释放分配给字符阵列的内存,指针将其返回 char * getenv( char * )
功能?以及哪种方式-C free()
或C+ delete []
?如果没有 - 为什么?
我是说:
char * ptr = getenv( "LS_COLORS" );
cout << ptr << endl;
delete [] ptr; //Is this or free() call needed?
谢谢你。
解决方案
原始数据存储在 environ
变量(这是一个char*的数组,包含具有其值的所有环境变量), getenv()
仅搜索相应的变量名称,然后从 environ
可变,因此您不必释放它,否则可能会发生不确定的行为。
其他提示
Getenv将指针返回到您的流程环境。它不需要被划分,这可能是一个好主意。 (删除和自由可能足够聪明,无法做任何事情,但是破坏您的环境不是一个好主意。)
不隶属于 StackOverflow