在C++中,malloc这样使用,会报错assigning to 'char ' from incompatible type 'void ',而C语言不会报错。

char * ver =malloc(size);

你需要进行强制类型转换

char * ver = (char *) malloc(size);

C语言对类型检查比较宽松,而C++要求就比较严格,malloc()返回是数值类型是void,所以需要先对其进行强制转换成char