读书人

看不懂了

发布时间: 2012-05-28 17:59:33 作者: rapoo

看不懂了,求救
是构造地图的一段

struct
{
obj* pobj;
......

}*PPoint

int main()
{
PPoint ** m_pPoints;//坐标点

//创建二维数组
m_pPoints=new PPOINT*[MAX_X];
for(int nx=0;nx<100;nx++)
m_pPoints[nx]=new PPOINT[MAX_Y];


}

那个m_pPoints是一个三级指针么???
那个for循环是怎么创建点的,看着好晕哪。。。。。

[解决办法]
struct
{
obj* pobj;
......

}*PPoint;
这样是错误的,是声明一个指针,而不是一个类型;
typedef struct
{
obj* pobj;
......

}*PPoint;
这才是一个指针类型;m_pPoints是三级指针,是指向一个指针数组的指针(这个指针数组里的指针指向你的PPoint的空间);
for循环也是正常的去在指针数组中确定指针的值(这个值仍然是指针数组,因为PPoint是指针类型)
[解决办法]
永远不要用维度来形容指针, 指针没有维度, 数组才有维度.

读书人网 >C++

热点推荐