| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2527 人关注过本帖
标题:C语言定义一个变量,系统会在栈区开辟一块空间
只看楼主 加入收藏
zengfanlong
Rank: 1
来 自:江西鹰潭
等 级:新手上路
威 望:1
帖 子:13
专家分:5
注 册:2009-10-1
结帖率:20%
收藏
已结贴  问题点数:10 回复次数:19 
C语言定义一个变量,系统会在栈区开辟一块空间
请求高手帮忙,我要如何能在C语言中实现Java中的new功能,使用malloc如何使用,请高手帮个忙吧,最好可以举个实例让我看看,几行的语句让我看明白。就是为了申请开辟一个空间。
搜索更多相关主题的帖子: C语言 变量 定义 空间 系统 
2010-08-24 09:48
御坂美琴
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:魔術の禁書目錄
等 级:小飞侠
威 望:9
帖 子:952
专家分:2929
注 册:2010-8-18
收藏
得分:1 
你会Java?干嘛不直接用C++?C++也可以new,御坂回答着

永远为正义而奋斗,锄强扶弱的Level 5 超能力者
とある魔術の禁書目錄インデックス__御み坂さか美み琴こと
http://bbs.bccn.net/space.php?action=threads&uid=483997
2010-08-24 10:04
qingmeisu200
Rank: 4
等 级:业余侠客
帖 子:113
专家分:215
注 册:2010-3-16
收藏
得分:1 
写个自定义函数 new。

我能!
2010-08-24 10:05
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:1 
原型是:
void *malloc(sizt_t size);
举例来说:假如有一个结构体LinkStack
LinkStack *pt;
pt=(LinkStack *)malloc(sizeof(LinkStack));  //为指针变量分配内存空间,

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2010-08-24 10:23
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:1 
c 语言也可以 new, blueguy 说道.
void* new(int size)
{
    return malloc(size);
}

我就是真命天子,顺我者生,逆我者死!
2010-08-24 10:23
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:1 
楼上~~
2010-08-24 18:24
mwebc
Rank: 2
等 级:论坛游民
帖 子:9
专家分:13
注 册:2010-7-21
收藏
得分:1 
double * ta;
ta=(double *)malloc(30*sizeof(double));
这段代码请求30个double类型值的空间
返回一个double类型的指针
如果malloc找不到空间就返回空指针
ta是一个指向double类型的指针而不是一个指向30个double类型的数据块

[ 本帖最后由 mwebc 于 2010-8-24 21:11 编辑 ]
2010-08-24 21:09
zengfanlong
Rank: 1
来 自:江西鹰潭
等 级:新手上路
威 望:1
帖 子:13
专家分:5
注 册:2009-10-1
收藏
得分:0 
回复 4楼 waterstar
你说malloc 按道理也是关键字啊 我电脑里面 malloc都不会变蓝色
2010-08-25 12:45
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:0 
void* new(int size)
{
    return malloc(size);
}

在这个代码的基础上,再添加两行代码, 就可以确定 堆区内存不足 的问题。
void* New(int size)
{   
    void* p;
    bgWriteLog("1");
    p = malloc(size);
    bgWriteLog("2");
    return p;
}
1212121这样的序列说明堆区内存不足,
应该是这样的吧,

[ 本帖最后由 BlueGuy 于 2010-8-26 15:05 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2010-08-26 14:07
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:1 
malloc calloc new都可以

欢迎来到我的博客:http://blog..cn/noisunyuhong
2010-08-26 15:16
快速回复:C语言定义一个变量,系统会在栈区开辟一块空间
数据加载中...
 
   



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

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