[错误记录]关于指针传递获得数据使用错误问题....
来源:互联网 发布:vue.js 视频教程 编辑:程序博客网 时间:2024/05/20 04:09
关于指针传递获得数据问题
为什么以下函数通过一个指针传入函数中获得数据, 返回的确是无数据的变量?
bool Scene::ResultSelectScene::getPlayerSaveData( LogData* logData )
{
// 保证数据已经获得
if ( !mCurPlayerLogData.empty() ){
// 错误... 这里试图把成员变量的指针传递给logData...
logData = &mCurPlayerLogData;
return true;
}else{
logData = 0;
return false;
}
}
原因是我在调用时的那个LogData不是声明一个NULL指针...
而用了一个变量...
如下
// 进入保存场景
// 获得当前场景中的玩家记录数据
LogData logData;
// 1 判断用户选择条件是否满足
// 是否成功获得? ERROR: 这样的用法错误...
bool isGet = mRenderWnd->getCurScene()->getPlayerSaveData(&logData);
这里把logData当作指针传入成员函数.. 再获得指针....
当调用函数的时候,这里首先获得了变量logData的地址... 再用一个指针指向它... 之后又用传入类的成员变量指针赋予这个指针... 所以不影响传入变量...
我个人的想法是这样...
= = 这样使用的错误理由是什么? 语言上的解释是什么?上面那个形参使用的指针式logData是临时的么?
后来就改成用引用传递了...
bool Scene::ResultSelectScene::getPlayerSaveData( LogData& logData )
{
// 保证数据已经获得
if ( !mCurPlayerLogData.empty() ){
// 修整, 重载赋值操作符
logData = mCurPlayerLogData;
return true;
}else{
return false;
}
}
一时脑残还是弄得不大明白...OTL 知道的人指教一下具体原因....某人经常在简单的基础问题上脑残...
为什么以下函数通过一个指针传入函数中获得数据, 返回的确是无数据的变量?
bool Scene::ResultSelectScene::getPlayerSaveData( LogData* logData )
{
// 保证数据已经获得
if ( !mCurPlayerLogData.empty() ){
// 错误... 这里试图把成员变量的指针传递给logData...
logData = &mCurPlayerLogData;
return true;
}else{
logData = 0;
return false;
}
}
原因是我在调用时的那个LogData不是声明一个NULL指针...
而用了一个变量...
如下
// 进入保存场景
// 获得当前场景中的玩家记录数据
LogData logData;
// 1 判断用户选择条件是否满足
// 是否成功获得? ERROR: 这样的用法错误...
bool isGet = mRenderWnd->getCurScene()->getPlayerSaveData(&logData);
这里把logData当作指针传入成员函数.. 再获得指针....
当调用函数的时候,这里首先获得了变量logData的地址... 再用一个指针指向它... 之后又用传入类的成员变量指针赋予这个指针... 所以不影响传入变量...
我个人的想法是这样...
= = 这样使用的错误理由是什么? 语言上的解释是什么?上面那个形参使用的指针式logData是临时的么?
后来就改成用引用传递了...
bool Scene::ResultSelectScene::getPlayerSaveData( LogData& logData )
{
// 保证数据已经获得
if ( !mCurPlayerLogData.empty() ){
// 修整, 重载赋值操作符
logData = mCurPlayerLogData;
return true;
}else{
return false;
}
}
一时脑残还是弄得不大明白...OTL 知道的人指教一下具体原因....某人经常在简单的基础问题上脑残...
- [错误记录]关于指针传递获得数据使用错误问题....
- 关于指针的值传递错误
- 关于指针错误的问题
- __attribute__((packed)) 指针传递,赋值错误问题
- 关于使用equals()函数报 空指针 的错误问题
- 【错误记录】关于C语言指针和数组
- 记录错误使用eventbus引发的问题
- 关于jq 中validate判断错误以后获得焦点问题
- [错误记录]tableviewcell问题
- qt错误问题记录
- 记录自己错误问题
- 错误使用了指针
- 指针使用错误
- Masonry 使用错误记录
- Git使用错误记录
- BootStrap3使用错误记录
- f_open()使用错误记录
- JRebel使用错误记录
- 常量、字段和成员属性
- LTE:全面进步 迎接商用
- 禁止MOSS页面个性化
- 世界编程语言排行榜08年01月_C++ 语言
- 关于动态规划的总结
- [错误记录]关于指针传递获得数据使用错误问题....
- Pku acm 3253 Fence Repair 数据结构题目解题报告(一) ----哈夫曼数
- 任务管理器进程
- 方法
- 3G终端之路
- 反病毒工具之注册表监视器(VC DLL源码)
- 想在这里安个家!
- skyeye 1.2.4模拟s3c2410运行qt-embedded的步骤
- 谷歌蝉联美国“最佳雇主”第1名