免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 3116 | 回复: 20
打印 上一主题 下一主题

关于malloc [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-05-03 10:19 |只看该作者 |倒序浏览
比如,我现在想为一个结构申请一块内存

typedef struct node
{
    char  name[20];
    struct node *link;
} std;

我现在想为他申请一块内存,大小20,
怎么申请???

std  *s;

if ((s =(std *)malloc(sizeof(stud))) == NULL)
{
   ....
}

该怎么申请???

[ 本帖最后由 地球杀手 于 2007-5-3 10:22 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2007-05-03 10:29 |只看该作者
链式结构, 没有就空着(NULL), 有就挂上

论坛徽章:
0
3 [报告]
发表于 2007-05-03 10:35 |只看该作者
原帖由 F.D.Roosevelt 于 2007-5-3 10:29 发表
链式结构, 没有就空着(NULL), 有就挂上

能不能给个代码?


s=(std *) malloc(sizeof(std));
or
s = (std *) malloc(sizeof(std) * 20));
or
for (i = 0; i < 20;i++)
    s=(std *)malloc(sizeof(std));


?

论坛徽章:
0
4 [报告]
发表于 2007-05-03 10:42 |只看该作者
是第一种.
下次最好还是说清楚你的要求, 别犹抱琵琶半遮面的谁都不懂, 世界上没几个人是你肚里的蛔虫

论坛徽章:
0
5 [报告]
发表于 2007-05-03 10:45 |只看该作者
原帖由 地球杀手 于 2007-5-3 10:35 发表

能不能给个代码?


s=(std *) malloc(sizeof(std));
or
s = (std *) malloc(sizeof(std) * 20));
or
for (i = 0; i < 20;i++)
    s=(std *)malloc(sizeof(std));


?


s=(std*) malloc(sizeof(std));
这种方式为你的s申请了一块大小为24的空间.
s=(std*)malloc(sizeof(std)*20));
这种方式为你的s申请了一块大小为24*20的空间.
for(i = 0; i < 20;i++)
s = (std*)malloc(sizeof(std));
这种方式应该和你第一种方式是一样的效果,而且你的内存没有被释放,是不好的编程方式.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
6 [报告]
发表于 2007-05-03 10:47 |只看该作者
原帖由 地球杀手 于 2007-5-3 10:19 发表
比如,我现在想为一个结构申请一块内存

typedef struct node
{
    char  name[20];
    struct node *link;
} std;

我现在想为他申请一块内存,大小20,
怎么申请???

std  *s;

if ((s =(std ...

你的问题是什么呢?

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2007-05-03 10:49 |只看该作者
原帖由 F.D.Roosevelt 于 2007-5-3 10:42 发表
是第一种.
下次最好还是说清楚你的要求, 别犹抱琵琶半遮面的谁都不懂, 世界上没几个人是你肚里的蛔虫

对头,老是让别人猜他/她想干啥,其他人哪来那么些闲情逸致。

论坛徽章:
0
8 [报告]
发表于 2007-05-03 11:14 |只看该作者
typedef struct node
{
    char  name[20];
    struct node *link;
} std;

我现在想为他申请一块内存,大小20,
怎么申请???

不是说清楚了吗?

也就是20个node结构体。

技术比较菜。别笑我!

[ 本帖最后由 地球杀手 于 2007-5-3 11:22 编辑 ]

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
9 [报告]
发表于 2007-05-03 11:33 |只看该作者
原帖由 地球杀手 于 2007-5-3 11:14 发表
typedef struct node
{
    char  name[20];
    struct node *link;
} std;

我现在想为他申请一块内存,大小20,
怎么申请???

不是说清楚了吗?

没感觉出来
也就是20个node结构体。

你直说嘛,绕这么大个圈子。

论坛徽章:
0
10 [报告]
发表于 2007-05-03 11:39 |只看该作者
原帖由 MMMIX 于 2007-5-3 11:33 发表

没感觉出来

你直说嘛,绕这么大个圈子。

新手,问问题水平不高。呵呵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP