c++11 - 将指针内容复制到堆栈变量
问题描述
我有这个疑问浮现在我的脑海里。这可能吗?考虑这段代码:
int* p;
int j = 9;
p = &j;
// is it possible to declare int x and store inside 9?
// so if I do delete p; that value is stored in x
提前致谢和问候
解决方案
您绝对可以读取p
引用的值并将其复制到另一个中int
,如下所示:
int x = *p;
// The value has been copied, j and hence *p aren't affected by changes to x:
++x;
assert(x > *p);
但是,您绝对不想这样做delete p
,因为它不是堆分配的new
. 相反,它p
指向j
,并且j
有一个由周围作用域自动管理的生命周期。
推荐阅读
- excel - Excel VBA中mac的睡眠等效项
- javascript - Mongodb-如何将集合字段作为变量传递以从另一个集合中获取数据?
- python - 类继承设计模式(Python)
- json - 替换一段json
- spring-boot - 是否每个 Spring Boot 应用程序都创建一个能够运行的 tomcat 容器?
- arrays - 是否可以创建 VlcPlayerController 控制器的二维数组?
- python - 如何删除字典python中值中具有不同顺序的同一对?
- python - 如何从线程类中获取变量?
- java - 如何在android中使TextInputEditText默认不聚焦?
- php - 致命错误:在 phar:/