malloc() 没有分配我期望的内容

问题描述 投票:0回答:1

我有两个整数指针,

a
b
。我使用以下行:

int* b = malloc(3 * sizeof(int));

我希望调用

sizeof(b)
返回
3 * sizeof(int)
,它等于
12
,但事实并非如此,它返回
8

a
我想分配
b
中存在的元素,并附加另一个元素(在其末尾)。如果给出有关如何分配多个的建议,我们将不胜感激。

我的问题总结如下: 为什么

malloc
显示第一段中描述的行为并且 如何本质上附加到整数数组

c pointers malloc
1个回答
0
投票

分配 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;
© www.soinside.com 2019 - 2024. All rights reserved.