我有两个整数指针,
a
和b
。我使用以下行:
int* b = malloc(3 * sizeof(int));
我希望调用
sizeof(b)
返回 3 * sizeof(int)
,它等于 12
,但事实并非如此,它返回 8
。
至
a
我想分配 b
中存在的元素,并附加另一个元素(在其末尾)。如果给出有关如何分配多个的建议,我们将不胜感激。
我的问题总结如下: 为什么
malloc
显示第一段中描述的行为并且
如何本质上附加到整数数组
分配 b 中存在的元素,并附加另一个元素
// Allocate
int *a = malloc(4 * sizeof(int));
// or better as
int *a = malloc(sizeof a[0] * 4);
// Copy the data pointed to by `b` to `a`.
memcpy(a, b, sizeof a[0] * 3);
// Assign.
a[3] = 42;