Programación en C: malloc () dentro de otra función

necesito ayuda conmalloc() dentro de otra función.

Estoy pasando unpuntero yTalla a la función de mimain() y me gustaría asignar memoria para ese puntero dinámicamente usandomalloc() desde adentro de esa función llamada, pero lo que veo es que ... la memoria, que se está asignando, es para el puntero declarado dentro de mi función llamada y no para el puntero que está dentro delmain().

¿Cómo debo pasar un puntero a una función y asignar memoria para el puntero pasado?desde dentro de la función llamada?

He escrito el siguiente código y obtengo el resultado como se muestra a continuación.

FUENTE:

int main()
{
   unsigned char *input_image;
   unsigned int bmp_image_size = 262144;

   if(alloc_pixels(input_image, bmp_image_size)==NULL)
     printf("\nPoint2: Memory allocated: %d bytes",_msize(input_image));
   else
     printf("\nPoint3: Memory not allocated");     
   return 0;
}

signed char alloc_pixels(unsigned char *ptr, unsigned int size)
{
    signed char status = NO_ERROR;
    ptr = NULL;

    ptr = (unsigned char*)malloc(size);

    if(ptr== NULL)
    {
        status = ERROR;
        free(ptr);
        printf("\nERROR: Memory allocation did not complete successfully!");
    }

    printf("\nPoint1: Memory allocated: %d bytes",_msize(ptr));

    return status;
}
SALIDA DEL PROGRAMA:
Point1: Memory allocated ptr: 262144 bytes
Point2: Memory allocated input_image: 0 bytes

Respuestas a la pregunta(8)

Su respuesta a la pregunta