我对以下代码有些怀疑:
void b(int** a){
int *c = new int;
*a = c;
**a = 120;
}
int main(){
int *a = nullptr;
b(&a);
if(a)
delete a;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我担心的是,可能会导致UB,因为它是一个nullptr,我正在更改指针地址,因为我正在获取它的引用,但后来我开始认为这不应该是我将要遇到的问题.一些地址 - > nullptr.这个地址有效,所以我可以改变它.
我不止一次地运行了这个测试并启用了-fsanitize =地址,它运行正常.但是,这是正确的吗?
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |