(真的很难吗?)
我们知道函数参数的内存是在栈中的。但具体是如何分配的?例如,参数的类型是一个class(体积很大)。这时候,针对这个类的new是不是被调用了?而我知道new 是在堆中分配内存的。哪编译程序难道知道我的类的大小?
class myClass
{
public:
int a[5000];
};void func( myClass aa ) //-- bad style, but question comes from here
{
....
}void main()
{
myClass mc;
func( mc ); //-- new 被调用了吗?
}
我们知道函数参数的内存是在栈中的。但具体是如何分配的?例如,参数的类型是一个class(体积很大)。这时候,针对这个类的new是不是被调用了?而我知道new 是在堆中分配内存的。哪编译程序难道知道我的类的大小?
class myClass
{
public:
int a[5000];
};void func( myClass aa ) //-- bad style, but question comes from here
{
....
}void main()
{
myClass mc;
func( mc ); //-- new 被调用了吗?
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货