c++ - 来自 2 个指针的组合缓冲区,无需复制

标签 c++ c linux pointers

我想从 2 个指针创建组合缓冲区,而不进行任何复制。

示例:顶部和底部都是已分配的带有只读数据的缓冲区:

uchar top[10]; uchar bottom[10];

我需要这样的东西:

struct Buffer { uchar * top, * bottom; };
Buffer buffer; buffer.top = & top; buffer.bottom = & bottom;

然后使用缓冲区作为单个数组:

process( & buffer, size20 );

process 是某个库中的函数:

void process( uchar * buffer, int size );

c/c++ 中有一些方法可以做到这一点吗?

最佳答案

无法定义Buffer,以便分配两个不同数据字符串首尾相连。您必须将其定义为

struct Buffer { uchar top[10], bottom[10]; };

然后您必须通过直接拷贝设置这些值。

关于c++ - 来自 2 个指针的组合缓冲区,无需复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48486274/

相关文章:

c++ - arduino 网络客户端随机卡住

c++ - 为什么发布/调试对 std::min 有不同的结果?

c - printf 重新定义 UINT32_MAX

c - Switch 语句执行不止一种情况 - C 编程

linux - 使用 rc.local 回显密码命令

linux - Vagrant 拒绝启动(远程连接断开)

c++ - c++对象间指针传递

c++ - 在 Makefile 中创建对象

c - 通过 OpenMP SIMD 进行的 256 位矢量化会阻止编译器的优化(比如函数内联)?

python - 在 Ubuntu Linux 上运行一个 python 文件