C++ 结构保留值
我试图实现一个结构来保存二进制数据。就这样,C++ 结构保留值,c++,struct,C++,Struct,我试图实现一个结构来保存二进制数据。就这样, struct Buffer { int size_; int capacity = 1000000; int beg_index, end_index; char data_[1000000]; } buffer_audio[3]; 以及将二进制数据写入缓冲区的函数: int writing_bufer(Buffer buffers, const char *data, int nbytes) { if (n
struct Buffer {
int size_;
int capacity = 1000000;
int beg_index, end_index;
char data_[1000000];
} buffer_audio[3];
以及将二进制数据写入缓冲区的函数:
int writing_bufer(Buffer buffers, const char *data, int nbytes) {
if (nbytes == 0) return 0;
int capacity = buffers.capacity;
int bytes_to_write = std::min(nbytes, capacity - buffers.size_);
if (bytes_to_write <= capacity - buffers.end_index)
{
memcpy(buffers.data_ + buffers.end_index, data, bytes_to_write);
buffers.end_index += bytes_to_write;
if (buffers.end_index == capacity) buffers.end_index = 0;
}
else { return 0; }
buffers.size_ += bytes_to_write;
return bytes_to_write;
}
应该是
int writing_bufer(Buffer& buffers, const char *data, int nbytes)
将缓冲区复制到函数中,填充本地缓冲区,然后销毁它们
应该是
int writing_bufer(Buffer& buffers, const char *data, int nbytes)
将缓冲区复制到函数中,填充本地缓冲区,然后销毁它们
int writing_bufer(Buffer& buffers, const char *data, int nbytes)