new一个结构,结构里的数组是堆上还是在栈上分配?解决方案
new一个结构,结构里的数组是堆上还是在栈上分配?
//定义结构
typedef struct _dd
{
int a;
char buf[256];
}dd;
//分配内存
dd* pdata=new dd;
那pdata->buf是在堆上还是在栈分配的内存呢?
------解决方案--------------------
整体都在堆上
------解决方案--------------------
怎么整体都在堆上??没太明白新手 帮忙讲一下呗
------解决方案--------------------
是在堆上申请的。并且把这些空间的初始地址复制给pdata
------解决方案--------------------
pdata变量分配在栈上,new在堆在开辟内存,并把内存的首地址赋值给pdata。
------解决方案--------------------
你需要关注的不是数组,是new,new出来的是在堆上,就是在堆上申请了结构体大小的内存
------解决方案--------------------
堆上
//定义结构
typedef struct _dd
{
int a;
char buf[256];
}dd;
//分配内存
dd* pdata=new dd;
那pdata->buf是在堆上还是在栈分配的内存呢?
------解决方案--------------------
整体都在堆上
------解决方案--------------------
怎么整体都在堆上??没太明白新手 帮忙讲一下呗
------解决方案--------------------
是在堆上申请的。并且把这些空间的初始地址复制给pdata
------解决方案--------------------
pdata变量分配在栈上,new在堆在开辟内存,并把内存的首地址赋值给pdata。
------解决方案--------------------
你需要关注的不是数组,是new,new出来的是在堆上,就是在堆上申请了结构体大小的内存
------解决方案--------------------
堆上