大神您好!我想问您下面说的结构类似的泵泵车是什么么泵呀?

手机扫描二维码,把小组装进口袋
第三方登录:刚学不久,想问一下大神。结构体里面的数组可以动态分配吗?如果可以的话,为什么我使用的new没有成功?_百度知道
刚学不久,想问一下大神。结构体里面的数组可以动态分配吗?如果可以的话,为什么我使用的new没有成功?
#include&iostream.h&#define N 5struct st1{};struct st2{ st1 data[1]; };void main(){
st2 st2 *data=new st2 [N]; for(int i=0;i&N;i++) {
cin&&s.data[i].a; } for(int j=0;j&N;j++) {
cout&&s.data[j].a&& }}/*在这个代码中,我只能相对正处畅边堆装瞪膘缺博画确地输入2个值,就是说只能运行cin&&s.data[0].a和cin&&s.data[1].a;然而实际上,我需要输入5个值,但是我使用的new没有发挥我想要的结构...这是为什么呢?跪求方法Orz...*/
提问者采纳
你的理解有误,st2 *data=new st2 [N];不是为st2中的data动态分配内存,你这样做,只是为data这个变量分配了5个st2大小的内存。你可以写成这样:#include&iostream.h&#define&N&5struct&st1{ int&a;};struct&st2{ st1&data[1]; int&b;};void&main(){ st2&*s=new&st2&[N]; for(int&i=0;i&N;i++) {
cin&&s[i].data[0].a; } for(int&j=0;j&N;j++) {
cout&&s[j].data[0].a&& }}不过这是动态分配结构体,而不是里面的数组。动态分配结构体里的数组应该这么做:#include&iostream.h&#define&N&5struct&st1{ int&a;};struct&st2{ st1&*//动态数组的根本就在于指针! int&b;};void&main(){ st2&s; s.data&=new&st1&[N]; for(int&i=0;i&N;i++) {
cin&&s.data[i].a; } for(int&j=0;j&N;j++) {
cout&&s.data[j].a&& }}不过你这里st1只有一个成员,完全没必要。:#include&iostream.h&#define&N&5struct&st2{ int&* int&b;};void&main(){ st2&s; s.data&=new&int&[N]; for(int&i=0;i&N;i++) {
cin&&s.data[i]; } for(int&j=0;j&N;j++) {
cout&&s.data[j]&& }}动态数组的实现一般就两种情况:1:用指针实现之:#include&iostream&using&namespace&int&main(){&int&&cin&&&//用指针p指向new动态分配的长度为len*sizeof(int)的内存空间&int&*p=ne处畅边堆装瞪膘缺博画w&int[len];&...........&delete[]&p;&return&0;}2:用vector实现之:#include&iostream&#include&vector&using&namespace&int&main(){&int&&cin&&&vector&int&&array(len);//声明变长数组&for(int&i=0;i&i++)&{&&array[i]=i;&&cout&&array[i]&&&\t&;&}&return&0;}呃,vector如果不理解可以暂时放下,不用着急,慢慢来……在此声明,发现楼上两位未能解决楼主问题,方才作答,绝非抢题之为。得罪之处,请见谅。如发现拙言有误,不吝赐教,万分感激!
提问者评价
其他类似问题
按默认排序
其他3条回答
cin&&s.data[i].a;这一句中s.data[i].a逻辑混乱到了极点——你为data分配了5个元素,每个元素是st2,data[0]就是第1个st2,而s是st2的实体,那么s.data[0]是说data[0]是s的成员,那就是说st2的实体data[0]是st2的另一实体s的成员,这可能吗?你把cin&&s.data[i].a;改成cin&&gt处畅边堆装瞪膘缺博画;data[i].data[1].a;试试!相应地要把cout&&s.data[j].a&&改成cout&&data[j].data[1].a&&!另:你问的“结构体里面的数组可以动态分配吗?”与本题无关,但可以告诉你是肯定的!
结构定义调用错误,以及使用对象错误for(int&i&=0;&i&&&N;&i&++){&&&&cin&&&&data[i].data[0].a}&你原来的是写法是对象数组越界了……
肯定不可以啦动态的数组只能用Vector来实现。不然你想一个动态的数组,编译器怎么给他分配内存?
结构体的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我是学机械的,想要找饮水机或者净水器的结构图,哪位大神有的话麻烦帮一下我啊,最好附有文字啦、、、_百度知道
我是学机械的,想要找饮水机或者净水器的结构图,哪位大神有的话麻烦帮一下我啊,最好附有文字啦、、、
最好包括功能分析,构型分析与建模,物理学原理分析,质量流和能量流分析,制造与装配分析
提问者采纳
去卖净水器的地方,那本说明书就可以了
提问者评价
其他类似问题
净水器的相关知识
您可能关注的推广回答者:回答者:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 胸腔下面是什么部位 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信