指向矢量<float>第一个字节的指针

Pointer to first byte of a vector<float>

本文关键字:第一个 字节 指针 gt float lt      更新时间:2023-10-16

XAudio2中指向XAUDIO_BUFFER结构体音频缓冲区的指针定义为BYTE *pAudioData。当我使用16位整数PCM时,我的程序是这样的:

void buildWaveBuffer(std::vector<unsigned char> &vec)
{
    std::string lineString;
    int lineInt;
    unsigned char lowByte, highByte;
    std::ifstream myfile("sineInt16");
    if (myfile.is_open())
    {
        while(myfile.good())
        {
            std::getline(myfile,lineString,',');
            lineInt = atoi(lineString.c_str());
            highByte = (lineInt >> 8) & 0x00FF;
            lowByte = lineInt & 0x00FF;
            vec.push_back(lowByte);
            vec.push_back(highByte);
        }
        myfile.close();
    }
}

"sineInt16"为。csv文件。由于向量在内存中是按顺序组织的,所以我只需执行pAudioData = &vec[0]就可以了。如果我想将。csv格式更改为float,该怎么办?我如何给一个指针的第一个字节的向量?我应该使用另一个容器像一个简单的字符数组吗?

我如何给一个指针的第一个字节的向量?

完全相同的方式,但我不确定它会做你所期望的。阅读对你的问题的评论