青花郎10年53度价格表:舟--C语言的一个小问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 08:41:00
unsigned char *bits;
int bitsize;
if ((bits = malloc(bitsize)) == NULL)
{}
前两行是定义两个变量,出错在第三行,请问如何改正,错误如下:
error C2440: '=' : cannot convert from 'void *' to 'unsigned char *'
Conversion from 'void*' to pointer to non-'void' requires an explicit cast

malloc函数的返回值是void*类型的,使用时必须进行类型转换,上面的错误应这样改正:
if((bits = (unsigned char*)malloc(bitsize)) == NULL)
{
}
另外,bitsize好像没有赋值。

bits是指向unsigned char类型的指针,不能指向int 类型的区域,另外,请给你定义的变量初始化。