c - 使用非字符数据作为参数的 memcpy 中的问题!

标签 c memcpy

下面的程序没有输出想要的数据(在VC2008编译器上)

#include <stdio.h>
#include <string.h>

int main(void)
{
    int i;
    int dest[10] = {1};
    int src [] = {2, 3, 4, 5, 6};

    memcpy(dest, src, 5);
    for (i=0; i<10; i++) printf("%i\n", dest[i]);

    return 0;
}

而使用 char 数组代替,一切正常! 问题出在哪里?

最佳答案

memcpy 需要一定数量的字节来复制——而不是一定数量的对象。

 memcpy(dest,src,5*sizeof(dest[0]))

关于c - 使用非字符数据作为参数的 memcpy 中的问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729929/

相关文章:

objective-c - 将 ObjC id<Protocol> 和类型对象转换为 C 指针 (void *) 然后将其转换回去是否安全?

c++ - 我可以 memcpy() 任何具有普通析构函数的类型吗?

在C中通过memcpy将一个矩阵复制到另一个矩阵

c - 从 txt 文件中读取数字矩阵

c - 求整数的下一个 2 次方的以 2 为底的对数

c - 无法重新连接到 ODBC 连接

c - AVR - AT90CAN128,随机跳转代码

mysql - C Realloc 追加字符串 MySQL 连接器

c - 将返回值分配给 int 数组

c - HAL 锁定和解锁函数如何使用以及为什么?