| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 805 人关注过本帖
标题:关于指针的问题
只看楼主 加入收藏
zyz013920
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-1-6
收藏
 问题点数:0 回复次数:17 
关于指针的问题
问一个弱的问题。
现在想用双层指针指向二维double型数组,可能没有必要这样,但是请各位看看这样书写为什么TC指出是错误的。
/*定义两个指针,一个指向一个数组,这个数组就是一个二维的数组;然后用另外一个指针指向这个数组的每一行的第一个元素,我自己认为就是作为每一行的指针*/
doulbe * ipMatrix, *Matrix;
int i;
ipMatrix=(double *)malloc(Row * Col*sizeof(double));
Matrix=(double *)malloc(Row * sizeof(double));
for(i=0;i<Row;i++)
*(Matrix+i)=ipMatrix+i*Col;
……
但是在编译的时候提示有这样的错误"floating point error: domain"。
各位请告诉我这是什么缘故啊,我对指针理解的还很浅薄,可以的话强详细讲一下 。
谢谢各位先!
搜索更多相关主题的帖子: 指针 
2007-01-06 15:17
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

二维数组是一个指向指针类型的指针变量
比如:用指针定义一个[10][10]的二维数就是这样:
float **string=NULL;
int i;
string=(float **)malloc(10*sieof(float *));
for(i=0;i<10;i++)
string[i]=(float *)malloc(10*sizof(float));

[此贴子已经被作者于2007-1-6 16:41:55编辑过]


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-01-06 16:41
hjingya
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2006-12-6
收藏
得分:0 

刚看到数组这一章,还没到指针,看来得抓紧看了。呵呵!


2007-01-07 01:08
SuperStar515
Rank: 1
等 级:新手上路
帖 子:137
专家分:0
注 册:2006-12-24
收藏
得分:0 
飘过~~~~~~~~~~~~~~~~~~~~
我得继续努力啊!

喜欢等待,因为等待是一门需要花费一生才能读懂的艺术。等待。。。
2007-01-07 01:33
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
double **matrix

*matrix=(double **)malloc(ROW*sizeof(double)); //先分配一维

for (i=0;i<ROW;i++)
{
*matrix[i]=(double *)malloc(COL*sizeof(double)); //第一维中的每一个元素再分配一维内存
}

另外,如果不必要话,也不需要这样动态去分配

double matrix[ROW][COL]

这样matrix就是一个二级指针

个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2007-01-07 11:39
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

/*楼上的有一点问题吧*/
double **matrix

*matrix=(double **)malloc(ROW*sizeof(double)); //先分配一维
/* (double **) 对应是应该是用 matrix 来接收,
而不是*matrix
*/

for (i=0;i<ROW;i++)
{
*matrix[i]=(double *)malloc(COL*sizeof(double)); //第一维中的每一个元素再分配一维内存
/*matrix[i]已经是一个指针了,不要用 *matrix[i] 吧*/
}


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-01-07 11:48
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
收藏
得分:0 
以下是引用neverTheSame在2007-1-7 11:48:42的发言:

/*楼上的有一点问题吧*/
double **matrix

*matrix=(double **)malloc(ROW*sizeof(double)); //先分配一维
/* (double **) 对应是应该是用 matrix 来接收,
而不是*matrix
*/

for (i=0;i<ROW;i++)
{
*matrix[i]=(double *)malloc(COL*sizeof(double)); //第一维中的每一个元素再分配一维内存
/*matrix[i]已经是一个指针了,不要用 *matrix[i] 吧*/
}

更正一点错误,其他的没有错

double **matrix

*matrix=(double *)malloc(ROW*sizeof(double)); /*先分配一维,把(*matrix)看成是一个变量,比如可以看成是pMatrix,所以这个分配就相当于pMatrix=(double *)malloc(ROW*sizeof(double));,先分配一个一维数组*/

for (i=0;i<ROW;i++)
{
*matrix[i]=(double *)malloc(COL*sizeof(double)); /*同样可以把(*matrix)看成是一个变量,因为之前已经分配了一个一维数组,所以(*matrix)[r]是数组中的一个元素,然后每一个元素再分配一维内存*/
}


个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2007-01-07 11:59
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
我想请上楼编程实现一下,
是不是能够实现一个二维数组的申请!

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2007-01-07 12:05
☆註⊙諨☆
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-10-7
收藏
得分:0 
厉害呀```

2007-01-07 12:53
chuncheng
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-1-7
收藏
得分:0 
很不错 ,继续努力哦
2007-01-07 13:14
快速回复:关于指针的问题
数据加载中...
 
   



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

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