我有一个关于 memcpy() 的基本问题:
我有一个结构,它有几个数组作为其成员。
我想将结构中的数据复制到缓冲内存中(通过 malloc() 分配)
我看到了段错误。我在这个实现中做错了什么吗?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10
struct temp {
int en;
int one[MAX];
int two[MAX];
};
int main()
{
struct temp *cpy;
int *buffer, i;
for(i=0; i<MAX; i++) {
cpy->one[i] = i;
cpy->two[i] = i * i;
}
buffer = malloc(3 * MAX * sizeof(int));
memcpy(buffer, cpy, sizeof(struct temp));
}
如何将完整的数据复制到缓冲区中?
最佳答案
cpy
只是一个未初始化的内存指针(引用)。您需要通过在 for
循环之前将其指向分配的内存来对其进行初始化。
关于c - 使用 memcpy 时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26793463/