繁体   English   中英

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

[英]Pointer to first byte of a vector<float>

指向 XAudio2 中XAUDIO_BUFFER结构的音频缓冲区的指针被定义为BYTE *pAudioData 当我使用 16 位 Integer 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 文件。 由于向量在 memory 中按顺序组织,因此我只需执行pAudioData = &vec[0]即可。 如果我想将 my.csv 的格式更改为float怎么办? 如何给向量中第一个字节的指针? 我应该使用另一个容器,比如一个简单的字符数组吗?

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

完全相同的方式,但我不确定它会达到你的预期。 阅读对您问题的评论。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM