void 类型不能用来初始化char* 类型的实体

Posted 流楚丶格念

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了void 类型不能用来初始化char* 类型的实体相关的知识,希望对你有一定的参考价值。

问题

我想,问题肯定大多是出现在大家从网上复制下来代码,粘贴到VS上,然后发现报错。

解决

强制转化

首先瞅瞅你的源文件类型<如果是 .cpp 文件,也就是C++文件,那么你这样写是错误的,在C语言里不强制转换void *不会报错,但是在C++里不行,所以改法是:对void * 进行强制类型转化。

例如这样:

char* p = (char *)malloc(sizeof(char) * 64);

改为.c文件

或者将 .cpp 改为 .c 就可以了


在c文件中运行不会报错,不用强转

当然,上面两种方法用哪个得看你是在什么开发环境中。

以上是关于void 类型不能用来初始化char* 类型的实体的主要内容,如果未能解决你的问题,请参考以下文章

char* 类型的值不能用于初始化“char”类型的实体

"const char *" 类型的值不能用于初始化 "char *" 类型的实体

不能将void*类型的值分配到int类型实体?

vs2017中char* str = "1234asd56";会报错,——const char*类型的值不能用于初始化char*类型的实体

IntelliSense: 不能将 "const char *" 类型的值分配到 "char *" 类型的实体

memset为int型数组初始化问题