我需要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
free(*ptr)
从main()
try to free调用时的意愿input_image
是ummm,该术语回避了我...不是动态的已分配。