| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2191 人关注过本帖
标题:malloc()返回值为-842150451
只看楼主 加入收藏
l_s_525
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-8-24
结帖率:0
收藏
已结贴  问题点数:20 回复次数:14 
malloc()返回值为-842150451
使用VC++6.0 在WIn32 Console Application 下编程

#inclide "stdlib.h"
int main()
{
    int *MM;
    MM=(int *)malloc(100*sizeof(int));
    return 0;
}

程序编译没问题,运行后,MM变量没有分配100整数单元,MM的返回值为-842150451,我查了一下,有人说是内存分配出界,

问:是不是内存分配出界?若是,怎样解决?
    若不是,是何原因?怎样解决?


急盼回复!!
搜索更多相关主题的帖子: return 
2013-08-24 09:57
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:2 
#include<stdio.h>
#include "stdlib.h"
int main()
{
    int *MM;
    MM=(int *)malloc(100*sizeof(int));
    return 0;
}

//include都写错了,不敢恭维呀!程序没问题
2013-08-24 10:10
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:0 
不好意思!电脑出问题了,返回一次就回复一次!版主过来删了吧
2013-08-24 10:14
丶弱水彡千
Rank: 5Rank: 5
来 自:地狱十九层
等 级:职业侠客
威 望:2
帖 子:203
专家分:369
注 册:2013-6-16
收藏
得分:2 
我以为你在刷存在感呢
程序的意思是给mm分配了100个整形的动态存储空间
估计是没有释放吧
free(mm)试试
这个我也没遇到过  

这个怎么玩
2013-08-24 10:26
jg658237
Rank: 7Rank: 7Rank: 7
来 自:青藏高原
等 级:黑侠
帖 子:224
专家分:529
注 册:2013-8-8
收藏
得分:2 
#include<stdio.h>
#include <stdlib.h>
int main()
{
    int *MM;
    MM=(int *)malloc(100*sizeof(int));
system("pause");
    return 0;
}

                            最后用free函数把内存释放了。

武功再高也怕菜刀.
2013-08-24 10:32
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:2 
回复 楼主 l_s_525
楼主觉得malloc的返回值应该是多少?

总有那身价贱的人给作业贴回复完整的代码
2013-08-24 10:48
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1506
专家分:9241
注 册:2010-3-16
收藏
得分:2 
void *malloc(unsigned int num_bytes);
功能:分配长度为num_bytes字节的内存块
返回值:如果分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL。
返回的是指针,
2013-08-24 13:03
l_s_525
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2013-8-24
收藏
得分:0 
#include<stdio.h>
#include "stdlib.h"
int main()
{
    int *MM;
    MM=(int *)malloc(100*sizeof(int));
    return 0;
}
不是返回值是多少,关键是没有获得100个int空间,数组的大小只有1个,我是把断点放在return 0前查看的。
2013-08-25 08:41
narutosusdo
Rank: 2
等 级:论坛游民
帖 子:45
专家分:25
注 册:2011-5-30
收藏
得分:2 
MM本来就是地址;MM的值会是地址,所以是那个长串数字,*MM才是你分配的数组
2013-08-25 09:12
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
对牛弹琴

总有那身价贱的人给作业贴回复完整的代码
2013-08-25 09:13
快速回复:malloc()返回值为-842150451
数据加载中...
 
   



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

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