char * 如果不malloc 直接等于 “xxx”会出问题吗
时间: 2023-08-01 21:12:54 浏览: 131
拨开自定义operator new与operator delete的迷雾.docx
如果你声明了一个 `char*` 指针,并将其直接赋值为一个常量字符串,例如 `char* str = "xxx";`,那么这个字符串常量是存储在只读内存区域中的,而不是分配给程序堆栈或堆的内存。因此,当你试图修改这个字符串时,就会导致程序崩溃或不可预测的行为。所以,如果你打算修改这个字符串,你需要将它复制到一个可写的内存区域中,例如使用 `malloc` 函数为它分配堆空间,或者将其复制到栈空间中。
阅读全文