使用sscanf函数给浮点数赋值时出现内存访问冲突 提示是指针异常
使用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= "开始 1 5.0 2.5 10 20 0.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);
大致代码
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 %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);