请教C++高手关于结构体指针错误问题!!!急!!!急!!!!急 问题如下

[复制链接]
查看11 | 回复2 | 2011-5-18 22:33:04 | 显示全部楼层 |阅读模式
开发环境是:BCB6.0
问题程序如下:
1、结构体定义如下
typedef structMyData
{
        int nIndexOfToolList;

int nCompensate;
        PRecord RecordStruct;
        TList *RecordList;
        __fastcall MyData()
        {
                RecordList = new TList;
        }

。。。。。。。。。。。
        }Data;
typedef Data *PData;
TList *DataList;
2、在程序中调用如下:

。。。。。。。。。。。。
        for(j = 0; j Items))->RecordList->Count; j++)
        {

。。。。。。。。
        }
编译就报错:
E2288 Pointer to structure required on left side of->or->*
检查了半天也不知道是什么问题
在线等啊 !!!麻烦遇到过这个问题的兄弟姐妹们帮小弟解答下!!!!!!

回复

使用道具 举报

千问 | 2011-5-18 22:33:04 | 显示全部楼层
问题1.第一个程序声明node* p,这里的p是一个全局变量.C++默认将全局变量初始化为0.所以输出结果是0x00000000.第二个程序的node* p声明在主函数main()之中,这里的p是一个局部变量.输出的应该是个随机值,但安全起见0xCCCCCCCC是一个比较远的地址,是一个用户不可以使用的地址.问题2.两个程序中,你指声明了一个结构体变量的指针.其实质是一个地址.*p表示p中存储的地址中的内容.举个例子,int* q=a;,q表示变量a的地址,而*q表示变量a的值.正确的做法如下:node* p;node element;p=&elementelement.k=1;//或p->k=1;elemen
回复

使用道具 举报

千问 | 2011-5-18 22:33:04 | 显示全部楼层
typedef structMyData{int nIndexOfToolList;
int nCompensate;PRecord RecordStruct;TList *RecordList;__fastcall MyData(){RecordList = new TList;}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行