码迷,mamicode.com
首页 > 编程语言 > 详细

C++ void* 使用心得

时间:2015-04-22 18:43:14      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:c++ void*

    今天在写项目需求的时候,用到void*,开始没搞明白void*到底什么意思,问了老大,一语惊醒梦中人!!!!!!

    event->setUserData((void*)10);

    int* data = (int*)event->getUserData();
    CCLOG("data = %d", data);    

    开始这么设置setUserData,很疑惑为什么不用*data就可以输出10,反而*data就报错了!!!!

    老大说,指针本身的值就是10,我就明白了!!!!

    (void*)10是把10变成了一个指针地址的值,这个地址是没初始化的,所以*data是基本所错了,地址值为10的这块内存地址内容未知!!!!

    后来老大说,直接int data = (int)event->getUserData();就可以了用10这个值了,只要编译器不报错!!!

    

    在群里也问了这个问题,也得到一个解法,直接new出来就OK了,也不会有歧义!

    event->setUserData(new int(10));

    int* data = (int*)event->getUserData();

    int b = *data;

    CCLOG("&data = %d, data = %d", data, *data);

    这样也可以使用10这个值了!!!

    void*这个以前用的少,不明白!!!!今天算是涨知识了!!!!!!!

    如果是int型的用第一种比较方便!!!!!

    非常感谢老大和群里的朋友!!!!

本文出自 “小狼Zer” 博客,请务必保留此出处http://9151482.blog.51cto.com/9141482/1637196

C++ void* 使用心得

标签:c++ void*

原文地址:http://9151482.blog.51cto.com/9141482/1637196

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!