| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1315 人关注过本帖, 1 人收藏
标题:malloc函数问题,进来瞧瞧啊
只看楼主 加入收藏
智若愚
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2010-6-9
结帖率:0
收藏(1)
已结贴  问题点数:20 回复次数:7 
malloc函数问题,进来瞧瞧啊
今天用VS2008复制了一个MSDN里的例子,竟然出错了,大家来看看有没有道理啊~
#include <stdlib.h>

#include <stdio.h>

#include <malloc.h>
void main()
{
    char *string;
    string=malloc(_MAX_PATH);

    if(!string)
        printf("Insufficient memory available\n");
    else
    {
        printf("Memory space allocated for path name\n");
        free(string);
        printf("merery free\n");
    }
}
然后编译,出错....
f:\编程\win\malloc\malloc\12.cpp(9) : error C2440: “=”: 无法从“void *”转换为“char *”
1>        从“void*”到指向非“void”的指针的转换要求显式类型转换
只要把程序中string=malloc(_MAX_PATH);改为string=(char *)malloc(_MAX_PATH);就可以编译通过,但是我以前好像不用这样的,
大家看看
搜索更多相关主题的帖子: malloc 函数 
2010-09-26 19:47
cacker
该用户已被删除
收藏
得分:2 
提示: 作者被禁止或删除 内容自动屏蔽
2010-09-26 22:12
巔峰
Rank: 2
等 级:论坛游民
帖 子:31
专家分:30
注 册:2010-7-13
收藏
得分:2 
这个,malloc申请的空间肯定要强制转换成一定类型才能识别啊,给你个房子,没有门牌的话别人能找到么。
2010-09-27 00:29
清风拂晓
Rank: 8Rank: 8
来 自:火星
等 级:蝙蝠侠
威 望:1
帖 子:356
专家分:889
注 册:2010-8-13
收藏
得分:2 
string=malloc(_MAX_PATH);
这里应该是string=(* char)malloc(_MAX_PATH);
就是这样啊 不然你创建的类型没有说明他会把那个自动弄成VOID

清风拂暮(木)
2010-09-27 11:23
王玉雷
Rank: 2
等 级:论坛游民
帖 子:14
专家分:26
注 册:2010-9-19
收藏
得分:2 
呵呵,malloc()函数的返回值为空,所以要强制转化为char类型啊

2010-09-27 18:05
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
收藏
得分:2 
这是人定的 你记住就可以  string = (char *)malloc(_MAX_PATH)
2010-09-27 18:10
求教C
Rank: 2
等 级:论坛游民
帖 子:10
专家分:12
注 册:2010-9-13
收藏
得分:2 
都是犀利的人。
2010-09-27 19:05
codeferever
Rank: 2
等 级:论坛游民
帖 子:12
专家分:31
注 册:2010-7-25
收藏
得分:2 
好几楼都在重复,干嘛呢?
2010-09-27 20:59
快速回复:malloc函数问题,进来瞧瞧啊
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023994 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved