C Programming: malloc() inside another function
- by vikramtheone
Hi Guys,
I need help with malloc() inside another function.
I'm passing a pointer and size to the function from my main() and I would like to allocate memory for that pointer dynamically using malloc() from inside that called function, but what I see is that.... the memory which is getting allocated is for the pointer declared withing my called function and not for the pointer which is inside the main().
How should I pass a pointer to a function and allocate memory for the passed pointer from inside the called function?
Can anyone throw light on this?
Help!!!
Vikram
I have written the following code and I get the output as shown below
SOURCE:
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");
}
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;
}
PROGRAM OUTPUT:
Point1: Memory allocated ptr: 262144 bytes
Point2: Memory allocated input_image: 0 bytes