在C语言中,如果你遇到了`undefined reference to `memcpy`的错误,这通常意味着链接器没有找到`memcpy`函数的定义。`memcpy`是C标准库函数,用于内存拷贝,它通常在`string.h`头文件中声明,并在`stdlib

摘要:【C语言】解决初始化数组时报错“undefined reference to `memcpy'” 零、报错 代码: char start[] = {0xd, 0xa, 0xb3, 0xcc, 0xd0, 0xf2,
【C语言】解决初始化数组时报错“undefined reference to `memcpy'” 零、报错 代码: char start[] = {0xd, 0xa, 0xb3, 0xcc, 0xd0, 0xf2, 0xd2, 0xd1, 0xc6, 0xf4, 0xb6, 0xaf, 0xa1, 0xad, 0xa1, 0xad, 0xd, 0xa, 0}; 报错: interface.o: In function `main': /home/yu/fs4412/project/uart/interface.c:45: undefined reference to `memcpy' /home/yu/fs4412/project/uart/interface.c:85: undefined reference to `memcpy' /home/yu/fs4412/project/uart/interface.c:90: undefined reference to `memcpy' make: *** [Makefile:23:all] 错误 1 壹、解决 猜想是C语言经过预处理,会把数组初始化替换成用memcpy函数处理,由于没导入对应头文件,故报错,把初始化方法换一下即可,定义大小,后面单独赋值,修改后代码如下: // 初始化时只指定数组大小 char start[19]; // 单独对数组元素进行赋值 start[0] = 0xd; start[1] = 0xa; start[2] = 0xb3; start[3] = 0xcc; start[4] = 0xd0; start[5] = 0xf2; start[6] = 0xd2; start[7] = 0xd1; start[8] = 0xc6; start[9] = 0xf4; start[10] = 0xb6; start[11] = 0xaf; start[12] = 0xa1; start[13] = 0xad; start[14] = 0xa1; start[15] = 0xad; start[16] = 0xd; start[17] = 0xa; start[18] = 0; 贰、可以用AI解决 把这行代码转变为单独赋值的,初始化时只指定大小,后面单独赋值 char start[] = {0xd, 0xa, 0xb3, 0xcc, 0xd0, 0xf2, 0xd2, 0xd1, 0xc6, 0xf4, 0xb6, 0xaf, 0xa1, 0xad, 0xa1, 0xad, 0xd, 0xa, 0};