C#new出来的结构体内存分配在堆上

时间:2018-09-11 23:23:10   收藏:0   阅读:949

如题,有同事说因为结构体是值类型,所以 new出来的也是分配在栈上的。我的直觉是但凡使用new的东西都在堆上分配内存,除非C#对结构体做了特殊处理。

new int[10]这个说明不了什么,因为数组是引用类型,必然在堆上分配。

如何验证?

利用UNITY的profiler来观察内存变化 :new 一个内存占用很大的结构体,比如80M,看GC ALLOC 突现了80M,说明确实是在堆上分配的。然后GC掉,多次重复现象相同。

原文:https://www.cnblogs.com/timeObjserver/p/9630885.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!