1 c++
你能帮帮我吗?如何将一个int数组的一部分复制到另一个int数组?
例:
typedef struct part {
int * array;
} PART;
int array[] = {1,2,3,4,5,6,7,8,9};
PART out[] = new PART[3];
for (int i = 0; i < 3; i++)
{
memcpy((char *)array[i * 3], (char *)out[i].array, 3 * sizeof(int));
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用...... :(
好的,你有3个问题.
您正在将一个int转换为char*(char *)array[i * 3]
你真正的意思是(char *)&array[i * 3].即获取第i*3个元素的地址.
您正在尝试从未初始化的阵列中复制数据.
你应该分配内存到[i] .array.
你似乎把你的memcpy错了.
以下代码将更好地工作:
typedef struct part {
int * array;
} PART;
int array[] = {1,2,3,4,5,6,7,8,9};
PART out[] = new PART[3];
for (int i = 0; i < 3; i++)
{
out[i].array = new int[3];
memcpy( (char *)out[i].array, (char *)&array[i * 3], 3 * sizeof(int));
}
Run Code Online (Sandbox Code Playgroud)
确保你记得删除[]分配给[i]的内存.array ...
| 归档时间: |
|
| 查看次数: |
12947 次 |
| 最近记录: |