Как получить размер динамически (используя malloc или calloc) выделенную память?

Возможный дубликат:
определить размер динамически распределенной памяти в c
новички вопросы о malloc и sizeof
Как я могу получить размер массива из указателя в C?

Malloc -> сколько памяти было выделено?

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

Теперь я должен знать, сколько байтов выделяется в arrofptr, arrofptr [0], arrofptr [1]? есть ли способ узнать размер?

если мы будем печатать

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

то он напечатает 4

Нет, нет способа узнать, сколько памяти указатель имеет в виду.

По крайней мере, не в какой-либо системе, поэтому нет портативного способа.

Нет. Не используйте лишние данные где-то, где хранятся выделенные размеры.