| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1066 人关注过本帖
标题:怎样实现二维指针之间的赋值
只看楼主 加入收藏
vaqeteart
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-4-13
收藏
 问题点数:0 回复次数:6 
怎样实现二维指针之间的赋值
代码如下:
请问怎样实现把p1的值赋给p2,使二者的指向一样,而不用重新new空间了?
#include<iostream>
using namespace std;
int main()
{
//定义指针
int** p1 = NULL;
int** p2 = NULL;
int n = 5;
//分配空间
p1 = new int*[n];
int i = 0;
for(i = 0; i < n; i++)
{
p1[i] = new int(n);
}
for(i = 0; i < n; i++)
{
register int j = 0;
for(j = 0; j < n; j++)
{
p1[i][j] = i*n + j;
//cout<<p1[i][j]<<',';
}
}
//指针赋值
p2 = p1;
for(i = 0; i < n; i++)
{
p2[i] = p1[i];
}
for(i = 0; i < n; i++)
{
register int j = 0;
for(j = 0; j < n; j++)
{
//p2[i][j] = i*n + j;
cout<<p2[i][j]<<',';
}
}/**/
//报错?
return 0;
}
//为简便起见,我没有释放空间。

[此贴子已经被作者于2007-4-20 16:35:43编辑过]

搜索更多相关主题的帖子: 赋值 指针 
2007-04-20 16:34
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 
*p2 = *p1;

试试...

 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-04-20 21:44
windcloud
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-4-18
收藏
得分:0 

我觉得
for(i = 0; i < n; i++)
{
p2[i] = p1[i];
}
这句可以不用,而且重新分配空间了吗?
我不是太懂!


2007-04-20 22:46
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
以下是引用vaqeteart在2007-4-20 16:34:19的发言:
代码如下:
请问怎样实现把p1的值赋给p2,使二者的指向一样,而不用重新new空间了?
#include<iostream>
using namespace std;
int main()
{
//定义指针
int** p1 = NULL;
int** p2 = NULL;
int n = 5;
//分配空间
p1 = new int*[n];
int i = 0;
for(i = 0; i < n; i++)
{
p1[i] = new int(n);
}
for(i = 0; i < n; i++)
{
register int j = 0;
for(j = 0; j < n; j++)
{
p1[i][j] = i*n + j;
//cout<<p1[i][j]<<',';
}
}
//指针赋值
p2 = p1;
for(i = 0; i < n; i++)
{
p2[i] = p1[i];//什么目的, 在这里系统不知道P2这个2维指针的2维长度是不是和P1相同,
P2是一个没有指定[][]的指针,你怎么操作
}
for(i = 0; i < n; i++)
{
register int j = 0;
for(j = 0; j < n; j++)
{
//p2[i][j] = i*n + j;
cout<<p2[i][j]<<',';
}
}/**/
//报错?
return 0;
}
//为简便起见,我没有释放空间。


嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2007-04-21 08:44
vaqeteart
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-4-13
收藏
得分:0 
以下是引用I喜欢c在2007-4-20 21:44:35的发言:
*p2 = *p1;

试试...

式过了,报错,那怎么实现我想需要的功能呢?
(即不用重新开辟空间就可以用p2像 p1那样访问元素)

2007-04-21 15:27
Arcticanimal
Rank: 3Rank: 3
等 级:论坛游民
威 望:7
帖 子:341
专家分:20
注 册:2007-3-17
收藏
得分:0 

除了引用可以做到,其他的都需要重新分配空间 应该是这样的吧?

[此贴子已经被作者于2007-4-21 19:05:24编辑过]


try new catch
2007-04-21 19:04
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 
根本没有错误啊,只是你的p2=p1以及p1[i]=p2[i];都是没必要的,只是指向同一地址内存块...

[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2007-04-22 10:21
快速回复:怎样实现二维指针之间的赋值
数据加载中...
 
   



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

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