| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 854 人关注过本帖
标题:求助关于int类型的**P内存分配与释放(已解决~谢谢)
只看楼主 加入收藏
friskyliu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-7
收藏
 问题点数:0 回复次数:5 
求助关于int类型的**P内存分配与释放(已解决~谢谢)

#include <iostream.h>

int main(){
const sizeX = 4;
const sizeY = 3;
int **p;

//为**p分配4*3的内存;
p = new int[sizeX];
for(int i = 0 ;i < sizeX; i++){
p[i] = new int[sizeY];
}

//赋值
for(int x = 0; x < sizeX ; x++)
for(int y = 0;y < sizeY ; y++)
*((p+x*sizeX) + y) = x*y;
//打印
for( int z = 0; z < sizeX ; z++)
for(int a = 0;a < sizeY ; a++)
cout << *((p+z*sizeX) + a) << endl;
//释放内存
for(int b = 0 ; b < sizeX ; b++)
delete [] p[b];
delete [] p;

return 0;
}

不知道那里错误了~~请大侠们帮我改改~~能把数组的改成指针类型最好不过了~~

[此贴子已经被作者于2007-10-24 10:48:16编辑过]

搜索更多相关主题的帖子: 内存 int 类型 释放 
2007-10-23 22:19
style
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2005-11-29
收藏
得分:0 

#include <iostream.h>

int main()
{
const sizeX = 4;
const sizeY = 3;
int **p;

//为**p分配4*3的内存;
p = new int*[sizeX];

for(int i = 0 ;i < sizeX; i++)
{
p[i] = new int[sizeY];
}

//赋值
for(int x = 0; x < sizeX ; x++)
for(int y = 0;y < sizeY ; y++)
*(*(p+x*sizeX) + y) = x*y;
//打印
for( int z = 0; z < sizeX ; z++)
for(int a = 0;a < sizeY ; a++)
cout << *(*(p+z*sizeX) + a) << endl;
//释放内存
for(int b = 0 ; b < sizeX ; b++)
delete [] p[b];
delete [] p;

return 0;
}


11111111
2007-10-23 22:52
friskyliu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-7
收藏
得分:0 
回复:(style)#include int ma...
好像还是有错误,在赋值的时候x=2的时候说内存已经有数据了~~~
2007-10-23 23:08
style
Rank: 2
等 级:论坛游民
帖 子:18
专家分:20
注 册:2005-11-29
收藏
得分:0 

#include <iostream.h>

int main()
{
const sizeX = 4;
const sizeY = 3;
int **p;

//为**p分配4*3的内存;
p = new int*[sizeX];

for(int i = 0 ;i < sizeX; i++)
{
p[i] = new int[sizeY];
}

//赋值
for(int x = 0; x < sizeX ; x++)
for(int y = 0;y < sizeY ; y++)
*(*(p+x) + y) = x*y;
//打印
for( int z = 0; z < sizeX ; z++)
for(int a = 0;a < sizeY ; a++)
cout << *(*(p+z) + a) << endl;
//释放内存
for(int b = 0 ; b < sizeX ; b++)
delete [] p[b];
delete [] p;

return 0;
}


11111111
2007-10-23 23:16
friskyliu
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-3-7
收藏
得分:0 
谢谢~~~~不过还不懂为什么用*(*(p+x) + y)而不用*(*(p+x*sizeX) + y)
2007-10-23 23:21
踏魔狼
Rank: 6Rank: 6
等 级:贵宾
威 望:24
帖 子:1322
专家分:33
注 册:2005-9-22
收藏
得分:0 
*(*(p+x*sizeX) + y)这会出现数组越界错误.

=×&D o I p R e E n C g T l X&×=
2007-10-23 23:56
快速回复:求助关于int类型的**P内存分配与释放(已解决~谢谢)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018315 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved