免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 C/C++ malloc
最近访问板块 发新帖
查看: 1260 | 回复: 5
打印 上一主题 下一主题

malloc [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-11-01 12:25 |只看该作者 |倒序浏览
/* 分配lCount个pTicket */
    if (pTicket = (CDatRawTicket *)malloc(sizeof(CDatRawTicket)*lCount) == NULL)
    {
        gf_PrintMess(0,0,"", "Not enough memory to allocate buffern");
                goto Error_Return;
    }
    /*取表数据到内存*/
    gf_PrintMess(0,0,"", "size=%ld",sizeof(CDatRawTicket)*lCount);
    gf_PrintMess(0,0,"", "pTicket=%ld",pTicket);
    memset(pTicket,0x0,sizeof(CDatRawTicket)*lCount);

coredump?
pTicket=0
这是没有分配成功吗?

论坛徽章:
0
2 [报告]
发表于 2005-11-01 12:35 |只看该作者
运算符的优先级和结合性
(CDatRawTicket *)malloc(sizeof(CDatRawTicket)*lCount) == NULL
产生一个逻辑值0,然后赋给pTicket;

if (pTicket = (CDatRawTicket *)malloc(sizeof(CDatRawTicket)*lCount) == NULL)
改成
if ((pTicket = (CDatRawTicket *)malloc(sizeof(CDatRawTicket)*lCount)) == NULL)

论坛徽章:
0
3 [报告]
发表于 2005-11-01 12:50 |只看该作者
谢谢---------

论坛徽章:
0
4 [报告]
发表于 2005-11-01 13:05 |只看该作者
pTicket = (CDatRawTicket *)malloc(sizeof(CDatRawTicket)*lCount)

free(pTicket );

可以把pTicket清掉吗?

free []是什么时候用?

论坛徽章:
0
5 [报告]
发表于 2005-11-01 13:11 |只看该作者
free(pTicket );

可以把pTicket清掉吗?

pTicket是一个基于堆栈的自动变量,根本不需要清除。调用free(pTicket)是释放由pTicket所指向的那块
在堆里动态分配的存储空间。

free []是什么时候用?
没有这种用法。

malloc -- free是一对
new -- delete是一对

当你用new动态分配一个数组时,需要使用delete[] 进行动态数组空间的释放。

论坛徽章:
0
6 [报告]
发表于 2005-11-01 13:25 |只看该作者
,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP