/*
将长度len的字符串从src中截取出来
len 字符串长度
*/
U8 GetStr(U16 MaxSize,char* src ,char* key ,U8 len, char* value)
{
U16 i,j;
U8 GetFlag;
//U8 TempStr[100];
U16 GetAddr;
for(i=0;i<MaxSize-len;i++)
{
GetFlag=1;
for(j=0;j<len;j++)
{
if(src[i+j]!=key[j])
{
GetFlag=0;
break;
}
}
if(GetFlag==1)
{
GetAddr=i;
break;
}
}
char *SystemBuffer;
if(GetFlag==1)
{
sprintf(SystemBuffer,"%s=%%s",key);// key=%s
printf("%s %s\n", key, SystemBuffer);
sscanf(src+GetAddr,SystemBuffer,value); // 结果char*存到DAT
//DAT = SRC+4;
}
return(GetFlag);
}
GCC 编译通过
0@
VS 2010编译错误
error C2065: “SystemBuffer”: 未声明的标识符
后来想起之前碰到过这个问题,拿到VS中调试提示访问错误,最后发现是数组没有开辟空间,sprintf无法格式化写入。
解决:
char *SystemBuffer[200];