在c++中 new可以为void分配空间吗?

 我来答
传薪网络
推荐于2016-03-31 · TA获得超过1355个赞
知道小有建树答主
回答量:635
采纳率:92%
帮助的人:243万
展开全部

  不可以分配void空间

  C++中也不允许出现void变量

  只能出现void*指针变量

  而void*指针变量是可以分配空间的

  以下代码示例了如何分配一个void*空间

void** p = new void*;

  

lsslddd
2014-03-13 · TA获得超过936个赞
知道小有建树答主
回答量:374
采纳率:0%
帮助的人:423万
展开全部

如果你的意思是这样的话

void* p=new void; //这是不可行的,因为没有void数据类型,所以new无法确定空间大小

如果是这样的话

void* p=(void*)(new char);  //这样是可以的
追问
这就是说为void数据类型定义一个char类型就可以使用时吗?
追答
void*仅仅是获得了地址的值,而对于那个地址的含义是不知道的,所以不能用void*访问该地址,必须转换成某个具体类型的地址才可以访问
C语言的 malloc就是个典型例子

int* pi=(int*)malloc(100*sizeof(int)); //malloc返回一个void*, 转换为int*赋给pi
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-14
展开全部
因为没有void类型的参数,所以普通的void *p = new void是错误的如果但是如果你new的是具体的某个类型的参数,而要转化为void类型的 这样是可以的void *p = (void*)(new char)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨润利020
2014-03-13 · TA获得超过171个赞
知道小有建树答主
回答量:307
采纳率:100%
帮助的人:264万
展开全部
“new”: 无法分配“void”对象
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-14
展开全部
函数数组应该可以啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式