How to get the size of dynamically (using malloc o

2019-02-27 10:44发布

问题:

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

回答1:

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.



回答2:

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



标签: c size malloc