目录
new运算符
new运算符会在堆上申请一段内存空间,一般的变量是在栈上的。
new出来的变量只要不delete释放,在其他函数等任意位置都可以使用,
new会返回这段内存空间的首地址。
new并不确保会自动初始化
测试
- 这里我们使用vs2019运行测试
- 待测试的一共有4种变量申请方法:
- 全局区new - 图中global_new_int
- 全局区声明 - 图中global_int
- 函数内new - 图中fun_new_int
- 函数内声明 - 图中fun_int
- 直接运行是过不了vs2019的编译的
- 提示fun_int没有进行初始化就被使用
- 因此 函数内声明的变量 就显然是需要自己手动初始化的,编译器不会帮我们。
- 接下来给fun_int手动初始化,改为int fun_int = 123;
- 运行结果
- 全局区new - 不会自动初始化
- 全局区声明 - 会自动初始化为0
- 函数内new - 不会自动初始化
- 函数内声明 - 不会自动初始化,而且不手动初始化的话连编译都过不了
结论
- 可见new的不管是在全局区还是函数内都不会自动初始化。
- 而在全局区直接定义变量是会自动初始化的。
- 自己习惯手动初始化才是最保险的。
This is extremely educational. I truly enjoyed perusing it. The content is extremely well-organized and simple to understand.
It is very comforting to see that others are suffering from the same problem as you, wow!
Узнай все о искривление носовой перегородки операциястоимость септопластики
Funeral: Apr 1, 1927 at Federated church, Rev Randall of Sprague.
Hi, There’s no doubt that your blog may be having web browser compatibility issues. When I take a look at your site in Safari, it looks fine however, when opening in IE, it has some overlapping issues. I simply wanted to provide you with a quick heads up! Apart from that, excellent site!
Note additionally the similarities (and variations) between Troubleshooter and what eventually became Deus Ex.