不,您处于未定义的行为领域.
我假设你的意思是这样的:
int* p = NULL;
{
int x = 0;
p = &x;
}
//p is a dangling pointer
Run Code Online (Sandbox Code Playgroud)
如果试图取消引用p后},你会遇到麻烦(或更糟的是,你不会和它看起来像它的工作).
但是你可以重新分配指针,就像这样
p = new int();
Run Code Online (Sandbox Code Playgroud)
完全没问题.
以下是合法的(作为使用new或分配动态内存的替代方法malloc):
int* p = NULL;
{
static int x = 0;
p = &x;
}
*p = 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
155 次 |
| 最近记录: |