查看: 117|回复: 0

C语言可以在函数外分配堆内存吗?

[复制链接]

1

主题

5

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2023-1-16 16:37:16 | 显示全部楼层 |阅读模式
图像处理,在img_process函数外分配堆内存对读取到的图片像素进行存储,内存地址作为指针传入函数,图片处理完成后,再在img_process函数外进行内存释放。
void img_process_main(char* src_path, int src_height, int src_width)
{
uint8* y_in = (uint8*)malloc(src_height*src_width*sizeof(uint8));
//读取图像bin文件,写入y_in
FILE* in = fopen(src_path,"rb");
fread((void*)y_in, sizeof(uint8), src_height*src_width, in);
fclose(in);

img_process(y_in, src_height, src_width);

free(y_in);
}这样做发现了2个问题,第一个是当数据读取到一半,手动暂停读取,然后再恢复读取,数据会读取失败。第二个是python和c进行混编的时候,内存不能释放。针对这2个问题,有什么比较好的解决办法吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表