二级指针使用注意点

 设:unsigned char* buffer->bitmap = NULL;

 

//初始化:

buffer->bitmap = (unsigned char**)malloc(HIGHT * sizeof(unsigned char*));  //注意点:务必是unsigned char*,不能是unsigned char
 for (int y = 0; y < HIGHT; y++)
 {
  buffer->bitmap[y] = (unsigned char*)malloc(WIDTH * sizeof(unsigned char));
  memset(buffer->bitmap[y], 0, WIDTH*sizeof(unsigned char));
 }

//release

 

为什么要用unsigned char*呢,这是因为bitmap 是一个二级指针,指向一个unsigned char*指针(即地址),并以该unsigned char*指针为起始地址,分配了HIGHT个大小为sizeof(unsigned char*)的内存空间,用来存放HIGHT个指针。每一个指针,指向有WIDTH个unsigned char类型数据的区域。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值