在使用C++的mencpy()函数时报错如下:写入位置 0x0000000000000000 时发生访问冲突。
我的代码如下
int number[5];
int* num = nullptr;
for (int i = 0; i < 5; i++) {
number[i] = i;
}
memcpy(num, &number, 2);
考虑到是写入位置时引发的冲突,那我们便从写入位置来找原因,首先查看是否拷贝的内存是否大于写入指针指向的内存,其次考虑写入指针指向内存的是否存在。
在我这里由于我这边是申请了一个nullptr,所以我这边的只是申请了一个空的指针num,但是该num指针并没有给开辟处相应的内存空间,现在修改一下如下:
int number[5];
int* num = new int[5];
for (int i = 0; i < 5; i++) {
number[i] = i;
}
memcpy(num, &number, 2);
这样的话,代码就不会报错了。
记录了一下自己踩过的坑。