[错误记录]关于指针传递获得数据使用错误问题....
2008-02-02 23:46
841 查看
关于指针传递获得数据问题
为什么以下函数通过一个指针传入函数中获得数据, 返回的确是无数据的变量?
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 知道的人指教一下具体原因....某人经常在简单的基础问题上脑残...
相关文章推荐
- 关于使用httpclient传递json数据乱码的问题
- 关于获取JSON数据,出现格式错误的问题记录
- 关于使用json数据传递的时候hibernate的懒加载问题
- 关于使用equals()函数报 空指针 的错误问题
- 一个关于指针+记录数据类型的使用技巧
- 关于android与php传递数据,引号显示&quot的问题
- 关于后台传递给extjs tree的数据的格式的问题
- 记录一下关于IntelliJ IDEA 及部分使用问题
- 避免使用count(*)获得表的记录数,解决其延迟问题
- Activity之间使用Intent传递大量数据带来问题
- StretchDIBits 直接使用cv::Mat的数据有可能显示错误的问题
- 关于多对话框数据的传递问题
- 关于python元组数据截取问题的记录
- 关于指针和数组对申请内存malloc和作为参数传递的一些问题
- 关于struts2传递json数据时取不到的问题
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 关于在form中通过ajax请求传递数据时出现异常的问题
- Android笔记 Application对象的使用-数据传递以及内存泄漏问题
- 关于使用request.querystring提取中文数据的问题
- Application对象的使用-数据传递以及内存泄漏问题 和使用Memory Analyzer tool(MAT)