Мне нужна помощь с malloc()
внутри другой функции.
Я передаю указатель и размер в функцию из моего main()
, и я хотел бы динамически выделять память для этого указателя, используя malloc()
изнутри которая называется функцией, но я вижу, что.... память, которая получает выделенную, предназначена для указателя, объявленного в моей вызываемой функции, а не для указателя, который находится внутри main()
.
Как передать указатель на функцию и выделить память для переданного указателя внутри вызываемой функции?
Я написал следующий код, и я получаю вывод, как показано ниже.
Источник:
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;
}
ПРОГРАММНЫЙ ВЫХОД:
Point1: Memory allocated ptr: 262144 bytes
Point2: Memory allocated input_image: 0 bytes