How to get the size of dynamically (using malloc o

2019-02-27 10:32发布

Possible Duplicate:
determine size of dynamically allocated memory in c
newbie questions about malloc and sizeof
How can I get the size of an array from a pointer in C?

Malloc -> how much memory has been allocated?

int **arrofptr;
arrofptr = (int **)malloc(sizeof(int *) * 2);
arrofptr[0] = (int *)malloc(sizeof(int)*6144);
arrofptr[1] = (int *)malloc(sizeof(int)*4800);

Now i have to know that how many bytes are allocated in arrofptr,arrofptr[0],arrofptr[1]? is there any way to know the size?

if we will print

sizeof(arrofptr);
sizeof(arrofptr[0]);
sizeof(arrofptr[1]);

then it will print 4

标签: c size malloc
2条回答
We Are One
2楼-- · 2019-02-27 11:15

No. Not without using extra data somewhere that stores the allocated sizes.

查看更多
再贱就再见
3楼-- · 2019-02-27 11:19

No, there is no way to find how much memory a pointer is referring to.

At least not on any system, so no portable way.

查看更多
登录 后发表回答