C++
TotoroIovo
这个作者很懒,什么都没留下…
展开
-
(性能角度)pass by value的性能不一定比pass by reference低)
(性能角度)pass by value的性能不一定比pass by reference低)原创 2023-09-03 11:53:07 · 87 阅读 · 1 评论 -
为什么malloc(1000*1000*1000*1000*1000*...*1000)能在32位机器上分配成功并使用
首先int会自动向上转为longlong,然后longlong表达的整数是有范围的,编译器会自动对溢出值进行处理。首先这个问题表现形式是:运行malloc分配内存,这个明显在32位机器上是超过4g内存的,但是在运行时并没有报错,还是能正常运行。可以看到补码转原码值直接为0了。所以上述代码其实变为 malloc(0),这就是为什么malloc(1000*...*1000)是能过编译了。然后使用补码转原码工具。原创 2023-05-06 21:56:46 · 105 阅读 · 0 评论