我是冰枫论坛我没死,我姐粟梦露在打王者,我妹梦雅殇雪在看电视,侄女晶晶在刷微博。那些…… 这是什么梗?

请问如何把它变成二维数组使用,声明成new int [][]总出错,动态创建多维数组 也不行,谢谢-学网-中国IT综合门户网站-提供健康,养生,留学,移民,创业,汽车等信息
> 信息中心 >
请问如何把它变成二维数组使用,声明成new int [][]总出错,动态创建多维数组 也不行,谢谢
来源:互联网 发表时间: 4:36:41 责任编辑:鲁晓倩字体:
为了帮助网友解决“请问如何把它变成二维数组使用,声明成new int [][]总出错,动态创建多维数组 也不行,谢谢”相关的问题,学网通过互联网对“请问如何把它变成二维数组使用,声明成new int [][]总出错,动态创建多维数组 也不行,谢谢”相关的解决方案进行了整理,用户详细问题包括:
#include &iostream&
int main(){
p1=new char[];
p2=new char[];
p3=new char[];
for(i=0;i&n;i++){
for(j=0;j&n;j++){
cout&&&p1 :enter the &&& i...
cin&j&n;p3[i][j]=p1[i][j]+p2[i][j];相加 cout&&3;n;;p3[i][j];p2[i][j];m++){ int sum=0;n; } cout&& line&&i++){ for( int j=0;i&&i++){ for(j=0; } cout&j++){
}} for( i=0;*(p2+i*n+j); } }} for( i=0; for( i=1; } cout&*(p1+i*n+j)+*(p2+i*n+j)& } cout&p2 enter the &j&/ p1=new char[];n;;&&&/p1 ; /&i&& /p2[i][j]; char *p2;*(p2+i*n+j)& line&quot,j;&&& }*/endl:enter the &i++){ for( int j=0;& } cout&&j++){
cout&&&/ cout&i++){ for( int j=0;/&p3[i][j]; &&n;&j&row &j++){ / & for( i=0;i++){ for(int m=0; && sum+=*(p1+i*n+m)* *(p2+i*m+j);i&p1[i][j]&&& p3=new char[];n;/j++){ *(p3+i*n+j)=*(p1+i*n+j)-*(p2+i*n+j);n;/ / } cout&&i&&/& cout&3;row &n;n;&两个矩阵相减& }for(i=0; i&j++){ cout&&&&j++){ cout&n;j++){ p3[i][j]=p1[i][0]*p2[0][j]+p1[i][1]*p2[1][j]+p1[i][2]*p2[2][j];&;&&m&j& i&&&&&&&&/&&cout& cout&int main(){ char *p1;n;& char *p3;&quot#include &两个矩阵相乘&n;&*for( i=0;;& cin&&&i&两个矩阵相加& } /&&
} cout&&/&i&n;*(p1+i*n+j);&i&j& cout&n; cout&&for(i=0; / cin&j&&i++){ for(j=0;&iostream&&j& p2=new char[];& cout&i++){ for( int j=0; &&*(p1+i*n+j)&i++){ for( int j=0;j& for( i=0;i&n;&*(p3+i*n+j); /cin& /j&&/ /&p1[i][j];cout&&&p3[i][j];& p3[i][j]=p1[i][j]-p2[i][j];& } cout& }return 0; cin&gt
,具体解决方案如下:解决方案1:. 我用C写过矩阵乘法。如果改不好; j++) { cout &&lt.com/question/; }for (i =0;new [] operator failed&#92. 二维数组 int a[3][4] 可以看做一个含有三个元素的一维数组://using /question/:// i &lt://zhidao. 请看; iArr[i][j] &lt.html" target="_blank">http, 每个元素都是int [4]类型/&lt. i++) { delete [] iArr[i];&#47,hi我;* 1.html3; } 更好 *&#47, i++) { for (j = 0; iArr = new int * [lines].com/mayadong7349/blog/item/026cd3d12dae27d4a8ec9a21; i & i++) { iArr[i] = new int [cols]; int i.html" target="_blank">#include & i & iArr = NULL; } cout & } delete []iA iArr[i] = NULL; cols &iostream&gt: } for (i =0; lines, 没有new [][]new 和 delete是一对new[] 和 delete[] 是一对 申请和释放数组2. C++中 只有 new 和 new[] 两种;& } catch (bad_alloc) { cerr & 申请一个具有lines个元素的数组;* 这样写 try { iArr = new int * [lines];;&gt: for (j = 0; & lines.baidu. j & for (i = 0; } } for (i =0; exit(EXIT_FAILURE); j++) { iArr[i][j] = i * j. 自己试着改一下自己的程序; / j &lt。 C++中数组和指针看做一种派生数据类型更容易理解4.下面是一个简单的C++申请和释放二维数组的例子*/&gt, 每个元素都是int*类型 这样得到了lines个指针每个指向二维数组的一行 / & &n&quot.html5; return 0;int main(){ int **iArr = NULL; cin &gt.com/mayadong7349/blog/item/026cd3d12dae27d4a8ec9a21解决方案2:
你创建数组是没有初始化吧,你把出错的那句提示复制过来
1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答1个回答
相关文章:
最新添加资讯
24小时热门资讯
Copyright © 2004- All Rights Reserved. 学网 版权所有
京ICP备号-1 京公网安备02号2007年7月 C/C++大版内专家分月排行榜第一2007年6月 C/C++大版内专家分月排行榜第一2007年5月 C/C++大版内专家分月排行榜第一2007年4月 C/C++大版内专家分月排行榜第一2007年3月 C/C++大版内专家分月排行榜第一2007年2月 C/C++大版内专家分月排行榜第一2007年1月 C/C++大版内专家分月排行榜第一2006年12月 C/C++大版内专家分月排行榜第一2006年11月 C/C++大版内专家分月排行榜第一2006年9月 C/C++大版内专家分月排行榜第一2006年8月 C/C++大版内专家分月排行榜第一2006年7月 C/C++大版内专家分月排行榜第一2006年6月 C/C++大版内专家分月排行榜第一2006年5月 C/C++大版内专家分月排行榜第一2006年4月 C/C++大版内专家分月排行榜第一2006年3月 C/C++大版内专家分月排行榜第一2005年8月 C/C++大版内专家分月排行榜第一
2007年8月 C/C++大版内专家分月排行榜第二2006年10月 C/C++大版内专家分月排行榜第二
2006年8月 C/C++大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。怎样delete用new定义的二维数组_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:280,019贴子:
怎样delete用new定义的二维数组收藏
低租费、低噪音、低油耗的发电机
new只能建立指向一维数组的指针,不能接受二维的空间申请。
int *p = new int[SIZE_X*SIZE_Y];delete[]
我可没有啊,的确不能,不过对于二维数组可以这样申请,比如int a[i][j],int* p=new int[i*j],本质上还是转成一维空间的申请了!
int (*array)[10] = new int [15][10]; delete []p;
#include &iostream&class CMyArray {  const unsigned long dwSizeX, dwSizeY;  int *lpD  public:  CMyArray(const unsigned long dwSizeX, const unsigned long dwSizeY): dwSizeX(dwSizeX), dwSizeY(dwSizeY){    lpData = new int[dwSizeX*dwSizeY];  }  ~CMyArray(){    if(lpData){      delete[] lpD    }  }    int* operator[](const unsigned long y){    if(y &= dwSizeY){      // 添加异常处理 out_of_range    }    return lpData+y*dwSizeX;  }};int main(){  CMyArray myArray(2, 3);  myArray[0][0] = 0;  myArray[1][1] = 1;  myArray[2][1] = 2;  return 0;}
地址是线性的,不管多少维的数组本质上都是一维的。
int **p;
p=new int*[m];
for (int i=0;i&m;i++)*(p+i)=new int[n];
又是一个把二维数组和二级指针搞混的孩子,唉……
上海洪庙文艺家具厂—专业实木家具定制厂家,设计制作一站式服务,省心放心!
6楼正解,不过要事先知道二维数组大小,如果多维未知,就只能通过一维数组来模拟。当然你可以写一个类来模拟多维数组,只要重载operator[]就行。
回复6楼:这样的话10那维就只能是常量了吧?
是因为二维数组的地址是连续的、而二级指针的地址不是连续的吗?
指针是指针,数组是数组,根本就不是同一个东西,只是数组的首地址可以当指针来用而已。经常有人搞错掉。
我觉得是9楼那么做的啊?
二维指针和二维数组有区别吗?我题目问的是怎么deletedelete用new定义的m[n][n]for(int i=0;i&n;i++) {
delete []m[i]; }这样做可以吗?
你妹,说过多少次了数组是数组指针是指针,二者根本没有任何共同点只是用起来像而已
直接delete是不行的
直接用delete []p;没法释放二维数组的行,所有的二维数组的行都存在内存中,只是p[i]不再指向它而己;自己做一个测试。。。。#ifdef debug_deleteNewMemory
int *p_#endif#ifdef debug_deleteNewMemory
p_delete=&p[1][2];
cout&&*p_delete&&;
cout&&p[0][0]&&#endif
delete []p;
delete []p_;#ifdef debug_deleteNewMemory
cout&&*p_delete&& //能输出一个二维数组元素的值
cout&&p[0][0]&& //释放p[]后,发现这一条语句发生内存错误#endif所以:delete[]p,只能释放二维数组第一列的内存,,其它列的不能释放,原因很明显
具体肿木delete咱就不清楚了
new[n][n]?会给你编译过?
肿么new就肿么delete,又不是placement,哪来这么多废话……
用个循环分别释放一级指针的内存、再释放二级指针的内存
貌似只能这么解
析构函数啊析构函数
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或

我要回帖

更多关于 wpe冰枫修改版教程 的文章

 

随机推荐