即我初始化如下的指针:

const char * ptr1 = "Hello";

然后,我将第一个指针的内容分配给另一个指针,而无需重新分配/复制内存,并可能在另一个函数中使用后者:
const char * ptr2 = ptr1;

当我使用第二个时,第一个不能释放,对吗?
也不能修改。

唯一需要注意的是,我无法检查内存是否为只读。

但是,如果我确定内存是只读的,那会出什么问题?

最佳答案



没什么,因为字符串文字是存储在可执行文件中的文字,因此永远无法释放。



没错。

为了进一步解释,如果您这样做

const char * ptr1 = "Hello";

字符串的内容存储在编译文件中,这意味着您不能取消分配它,也不能进行任何优化/程序。

关于c++ - 如果我确定const char ptr不在只读内存区域中,则在不重新分配内存的情况下复制const char ptr被认为是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33866837/

10-17 02:02