Struct Pointer Not Providing the Correct Size in sizeof() method-Collection of common programming errors

I’m having a issue getting the size of a struct pointer after allocating the memory using malloc or realloc. I’ve worked around this by keeping track of the memory in a separate counter, but I would like to know if this is a bug or if there is a way to properly query the size of a struct pointer.

Sample code demonstrates that no matter how much memory I allocate to the struct pointer it always returns 4 when querying using the sizeof() method.

typedef struct {
    int modelID;
    int bufferPosition;
    int bufferSize;
} Model;

Model *models = malloc(10000 * sizeof(Model));

NSLog(@"sizeof(models) = %lu", sizeof(models)); //this prints: sizeof(models) = 4