用malloc函数给某些变量分配内存时,没有强制转换就可以赋值,就像下面这样:
BITMAPFILEHEADER * pbmfh ;
pbmfh = malloc (dwFileSize) ;
这是在C标准中,void*类型值可以隐式转化为任意type*类型值,所以 malloc前不应当加强制转化,加了属于不良行为;
在C++标准中,0值可以隐式转化为任意type*类型值,所以 malloc前必须加强制转化,不加属于语法错误。
用malloc函数给某些变量分配内存时,没有强制转换就可以赋值,就像下面这样:
BITMAPFILEHEADER * pbmfh ;
pbmfh = malloc (dwFileSize) ;
这是在C标准中,void*类型值可以隐式转化为任意type*类型值,所以 malloc前不应当加强制转化,加了属于不良行为;
在C++标准中,0值可以隐式转化为任意type*类型值,所以 malloc前必须加强制转化,不加属于语法错误。