首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

使用sscanf函数给浮点数赋值时出现内存访问冲突 提示是指针异常

2012-03-31 
使用sscanf函数给浮点数赋值时出现内存访问冲突 提示是指针错误大致代码typedefstruct_Trem_Charact{chare

使用sscanf函数给浮点数赋值时出现内存访问冲突 提示是指针错误
大致代码
typedef   struct   _Trem_Charact
{
char   eventName[30];
                      unsigned   char   eventCount;
float   fi;
float   Ai;
float   t;
float   fc;
float   Ac;
}TremCharact,*PTremCharact;

TremCharact   *aTremCharact;
CString=cmdstring;
cmdstring= "开始15.02.510200.6 ";
sscanf(cmdstring, "%s   %s   %f   %f   %f   %f   %f ",aTremCharact-> eventName,
aTremCharact-> eventCount,
&aTremCharact-> fi,
&aTremCharact-> Ai,
&aTremCharact-> t,&aTremCharact-> fc,
                                                                                      &aTremCharact-> Ac);

出现错误的代码就是这样了,谁能看看啊

[解决办法]
typedef struct _Trem_Charact
{
char eventName[30];
unsigned char eventCount;
float fi;
float Ai;
float t;
float fc;
float Ac;
}TremCharact,*PTremCharact;

TremCharact *aTremCharact;
CString=cmdstring;
cmdstring= "开始 1 5.0 2.5 10 20 0.6 ";
sscanf(cmdstring, "%s %d %f %f %f %f %f ", /* <---------------- 这里 */
aTremCharact-> eventName,
&aTremCharact-> eventCount,
&aTremCharact-> fi,
&aTremCharact-> Ai,
&aTremCharact-> t, &aTremCharact-> fc,
&aTremCharact-> Ac);
[解决办法]
, "%s %s 这样有问题,应该是不能这样赋值的
这样应该可以
sscanf(cmdstring, "开始1 %f %f %f %f %f ",
&aTremCharact-> fi,
&aTremCharact-> Ai,
&aTremCharact-> t,&aTremCharact-> fc,
&aTremCharact-> Ac);

热点排行