截取value值

/*
将长度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];

猜你喜欢

转载自blog.csdn.net/huanghxyz/article/details/84590787