c++中字符串指针赋为NULL后,怎么让其指向一个有效地址
时间: 2024-09-18 12:08:56 浏览: 34
在C++中,当你将字符串指针赋值为`NULL` 或 `nullptr`时,它表示该指针不再指向任何有效的内存地址,即它是空指针。如果你想让它指向一个新的有效地址,你需要首先分配一块足够的内存空间,然后才能将其指向那个地址。
通常的做法如下:
```cpp
#include <string>
using namespace std;
int main() {
string* strPtr = nullptr; // 初始化为空指针
// 分配内存(假设足够大的字符串)
if (strPtr != nullptr) {
strPtr = new string("New String"); // 成功则分配并初始化
} else {
cout << "Memory allocation failed!" << endl;
return 0;
}
// 检查指针是否成功指向新的内存
if (strPtr && !(*strPtr).empty()) {
cout << "String pointer now points to: " << *strPtr << endl;
} else {
cout << "Failed to assign valid address" << endl;
delete[] strPtr; // 如果未成功,记得释放已分配的内存
}
return 0;
}
```
在这个例子中,我们首先检查分配内存是否成功,如果成功,我们将`strPtr`指向新创建的字符串,并检查`strPtr`是否有效。如果不成功,应删除已分配的内存以防止内存泄漏。
阅读全文