这段代码输出的两行有可能不一样吗?解决方案

这段代码输出的两行有可能不一样吗?
C/C++ code
    float *lpfValue = (float*)(shared_memory + yc_offset);
        lpfValue += index;
        
        char *lpftmp = (char*)lpfValue;
        char *lptmp1 = (char*)(&fvalue);
        memcpy(lpftmp,lptmp1,sizeof(float));
        
        if(m_facno==1 && devno==3 && (index ==2 || index ==105))
        {
            printf("value%d =  %02X %02X %02X  %02X   %f \n ",index,lptmp1[0],lptmp1[1],lptmp1[2],lptmp1[3],fvalue);
            printf("value%d =  %02X %02X %02X  %02X   %f \n ",index,lpftmp[0],lpftmp[1],lpftmp[2],lpftmp[3],*lpfValue);
        }



ARM里,先不管代码是不是比较怪,分析一下打印的两行有可能不一样吗?我是输出的两行最后的float打印出来有可能不一样,不知道为什么,搞一下午了。

------解决方案--------------------
memcpy(lpftmp,lptmp1,sizeof(float));
有没有多线程环境?这两片内存有没有重叠的可能?