| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3790 人关注过本帖
标题:谁能教我下malloc的用法
只看楼主 加入收藏
fishy
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2004-7-26
收藏
 问题点数:0 回复次数:12 
谁能教我下malloc的用法

如题,谢谢

搜索更多相关主题的帖子: malloc 用法 
2004-08-01 23:18
fishy
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2004-7-26
收藏
得分:0 

书上讲的不多.....

[此贴子已经被作者于2004-08-01 23:25:23编辑过]


刚学完C 对C++不明白 汇编懂一点点点
2004-08-01 23:24
fishy
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2004-7-26
收藏
得分:0 

动态内存那部分应该挺重要吧

[此贴子已经被作者于2004-08-01 23:44:58编辑过]


刚学完C 对C++不明白 汇编懂一点点点
2004-08-01 23:33
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
[转帖]
  原型:extern void *malloc(unsigned int num_bytes);
  
  用法:#include <alloc.h>
  
  功能:分配长度为num_bytes字节的内存块
  
  说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
        当内存不再使用时,应使用free()函数将内存块释放。
  
  举例:

      // malloc.c
      
      #include <syslib.h>
      #include <alloc.h>

      main()
      {
        char *p;
        
        clrscr();        // clear screen

        p=(char *)malloc(100);
        if(p)
          printf("Memory Allocated at: %x",p);
        else
          printf("Not Enough Memory!\n");

        free(p);
        
        getchar();
        return 0;
      }
2004-08-02 00:03
tigerhy
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2004-8-2
收藏
得分:0 

p=(char *)malloc(100);/*(char *)是什么意思?能不能去掉?*/

getchar(); return 0;分别是什么意思?我看很多程序里有,但不知道有什么用

2004-08-02 21:06
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
收藏
得分:0 
不能去掉的,(char *) 表示函数返回为字符指针类型

我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2004-08-02 22:07
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
不,乌鸦,其实是可以去掉的

淘宝杜琨
2004-08-03 07:26
fishy
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2004-7-26
收藏
得分:0 

那malloc就是返回了个内存的首指针喽

可是 动态 怎么体现的

有没有应用的小例子

先谢谢楼上的解释.........呵

[此贴子已经被作者于2004-08-03 12:43:03编辑过]


刚学完C 对C++不明白 汇编懂一点点点
2004-08-03 12:42
tempnetbar
Rank: 2
等 级:新手上路
威 望:4
帖 子:582
专家分:4
注 册:2004-5-5
收藏
得分:0 

呼呼……汗!动态怎么体现?晕……你把大小变成参数传入不就是动态了吗?想定义多大都可以由用户指定,比如先定义一个大小叫size的变量,由用户的输入赋值,然后

(类型 *)malloc(size*sizeof(你要定义的类型));就好了

神飘飘所说的能去掉我不能赞同,不知他的意思是什么?因为返回的是void类型的指针,若要正确移动指针的话还是需要这个强制类型转换的


相信勤能补拙! 喜欢用好用的就永远学不到有用的。
2004-08-03 13:11
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 

#include<stdlib.h>

main() { char *cp; /*定义一字符型指针*/

cp=malloc(100); /*在内存中开创一个空间,大小为100*/ gets(cp); /*输入一串字符,并存入该空间*/ puts(cp); /*显示字符*/ getch();

free(cp); /*释放空间*/ }


淘宝杜琨
2004-08-03 13:13
快速回复:谁能教我下malloc的用法
数据加载中...
 
   



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

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