草庐IT

aeabi_memcpy

全部标签

c++ - memcpy 与 startIndex?

我希望从一个特定的起点将特定长度的内容从一个缓冲区复制到另一个缓冲区。我检查了memcpy()但它只需要复制内容的长度,而我也想指定起始索引。是否有任何函数可以做到这一点,或者有什么好的方法可以用现有的memcpy函数做到这一点? 最佳答案 我总是喜欢语法memcpy(&dst[dstIdx],&src[srcIdx],numElementsToCopy*sizeof(Element)); 关于c++-memcpy与startIndex?,我们在StackOverflow上找到一个类似的

c++ - memcpy vs for 循环 - 从指针复制数组的正确方法是什么?

我有一个函数foo(int[]nums),我理解它本质上等同于foo(int*nums)。在foo内部,我需要将nums指向的数组的内容复制到范围内声明的一些int[10]中富。我理解以下内容无效:voidfoo(int[]nums){myGlobalArray=*nums}复制数组的正确方法是什么?我应该像这样使用memcpy:voidfoo(int[]nums){memcpy(&myGlobalArray,nums,10);}还是应该使用for循环?voidfoo(int[]nums){for(inti=0;i我还缺少第三种选择吗? 最佳答案

c++ - 为什么 std::memcpy 的行为对于不是 TriviallyCopyable 的对象是未定义的?

来自http://en.cppreference.com/w/cpp/string/byte/memcpy:IftheobjectsarenotTriviallyCopyable(e.g.scalars,arrays,C-compatiblestructs),thebehaviorisundefined.在我的工作中,我们长期使用std::memcpy来按位交换不是TriviallyCopyable的对象:voidswapMemory(Entity*ePtr1,Entity*ePtr2){staticconstintsize=sizeof(Entity);charswapBuffer[

c++ - 为什么 memcpy() 和 memmove() 比指针增量快?

我将N个字节从pSrc复制到pDest。这可以在一个循环中完成:for(inti=0;i为什么这比memcpy或memmove慢?他们使用什么技巧来加快速度? 最佳答案 因为memcpy使用字指针而不是字节指针,所以memcpy实现也经常用SIMD编写指令可以一次洗牌128位。SIMD指令是汇编指令,可以对最长16字节的vector中的每个元素执行相同的操作。这包括加载和存储指令。 关于c++-为什么memcpy()和memmove()比指针增量快?,我们在StackOverflow上找

c++ - 我可以在 C++ 中使用 memcpy 来复制没有指针或虚函数的类吗

假设我有一个类,如下所示;classMyClass{public:MyClass();inta,b,c;doublex,y,z;};#definePageSize1000000MyClassArray1[PageSize],Array2[PageSize];如果我的类没有指针或虚方法,那么使用以下内容是否安全?memcpy(Array1,Array2,PageSize*sizeof(MyClass));我问的原因是,我正在处理非常大的分页数据集合,如here所述,其中性能至关重要,而memcpy与迭代分配相比具有显着的性能优势。我怀疑应该没问题,因为“this”指针是一个隐式参数,而不

c++ - 我可以在 C++ 中使用 memcpy 来复制没有指针或虚函数的类吗

假设我有一个类,如下所示;classMyClass{public:MyClass();inta,b,c;doublex,y,z;};#definePageSize1000000MyClassArray1[PageSize],Array2[PageSize];如果我的类没有指针或虚方法,那么使用以下内容是否安全?memcpy(Array1,Array2,PageSize*sizeof(MyClass));我问的原因是,我正在处理非常大的分页数据集合,如here所述,其中性能至关重要,而memcpy与迭代分配相比具有显着的性能优势。我怀疑应该没问题,因为“this”指针是一个隐式参数,而不

C++ memcpy 返回值

根据http://en.cppreference.com/w/cpp/string/byte/memcpyC++的memcpy采用三个参数:目标、源和大小/字节。它还返回一个指针。void*memcpy(void*dest,constvoid*src,std::size_tcount);为什么会这样?参数还不够输入和复制数据吗?我是不是误会了什么?示例不使用返回值。 最佳答案 如果一个函数没有特定的返回值,通常习惯上返回一个输入参数(被视为主要参数的那个)。这样做允许您在表达式中使用“链式”函数调用。例如,你可以这样做charbuf

C++ memcpy 返回值

根据http://en.cppreference.com/w/cpp/string/byte/memcpyC++的memcpy采用三个参数:目标、源和大小/字节。它还返回一个指针。void*memcpy(void*dest,constvoid*src,std::size_tcount);为什么会这样?参数还不够输入和复制数据吗?我是不是误会了什么?示例不使用返回值。 最佳答案 如果一个函数没有特定的返回值,通常习惯上返回一个输入参数(被视为主要参数的那个)。这样做允许您在表达式中使用“链式”函数调用。例如,你可以这样做charbuf

c++ - 我应该为 memcpy 和 realloc 包含什么标题?

我正在将一个项目移植到iPhone,它使用了未找到的realloc和memcpy。要包含的标题是什么?这是一个混合了ObjectiveC和C++的项目,我开始迷路了。提前感谢您的帮助! 最佳答案 在C中:#include//memcpy#include//realloc在C++中,删除.h和前缀为c。在C++中,它们将被放置在std命名空间中,但也是全局的。 关于c++-我应该为memcpy和realloc包含什么标题?,我们在StackOverflow上找到一个类似的问题:

c++ - 我应该为 memcpy 和 realloc 包含什么标题?

我正在将一个项目移植到iPhone,它使用了未找到的realloc和memcpy。要包含的标题是什么?这是一个混合了ObjectiveC和C++的项目,我开始迷路了。提前感谢您的帮助! 最佳答案 在C中:#include//memcpy#include//realloc在C++中,删除.h和前缀为c。在C++中,它们将被放置在std命名空间中,但也是全局的。 关于c++-我应该为memcpy和realloc包含什么标题?,我们在StackOverflow上找到一个类似的问题: