社区
C语言
帖子详情
问:《C语言》指针那章的一道习题:编写一个函数alloc(n),用来在内存区新开辟一个连续的空间(n个字节)。再写一个函数free(p),将地址p
gwolf
2003-09-17 04:39:57
《C语言》指针那章的一道习题:编写一个函数alloc(n),用来在内存区新开辟一个连续的空间(n个字节)。再写一个函数free(p),将地址p开始的各单元释放。
能给点思路或代码均可。原题也有提示,可我不会做。在此请教各位。
...全文
582
8
打赏
收藏
问:《C语言》指针那章的一道习题:编写一个函数alloc(n),用来在内存区新开辟一个连续的空间(n个字节)。再写一个函数free(p),将地址p
《C语言》指针那章的一道习题:编写一个函数alloc(n),用来在内存区新开辟一个连续的空间(n个字节)。再写一个函数free(p),将地址p开始的各单元释放。 能给点思路或代码均可。原题也有提示,可我不会做。在此请教各位。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gwolf
2003-09-20
打赏
举报
回复
Caoyu015(酷鱼一代) :
可否稍做解释?
Caoyu015
2003-09-19
打赏
举报
回复
//简单的实现.
#include <stdio.h>
const int MaxSize = 100 // MaxSize > n
char buffer[ n ];
#define Free( ptr ) Cfree( &ptr )
char * Alloc( int n )
{
*( int * )&buffer[ 0 ] = n;
return &buffer[ 2 ];
}
void CFree( void **ptr )
{
if( *ptr == &buffer[ 2 ] )
{
*( int * )&buffer[ 0 ] = 0;
*ptr = 0;
}
};
playboyxp
2003-09-19
打赏
举报
回复
#include <stdio.h>
int *alloc(int n)
{
int *p;
p=malloc(sizeof(int)*n);
return p;
}
main()
{
int n,*p;
scanf("%d",&n);
p=alloc(n);
free(p);
}
lyff8neo
2003-09-17
打赏
举报
回复
mark
Andy84920
2003-09-17
打赏
举报
回复
楼主的意思是自己去实现MALLOC和FREE,不是去用标准函数库!
去看看STDLIB头文件.自己实现我还不知道怎么想.
老鱼趣多多
2003-09-17
打赏
举报
回复
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
int main()
{
char *str=NULL;
int n;
printf("Enter the size you want malloc!\n");
scanf("%d",&n);
str=(char *)malloc(sizeof(char)*n);
if(str==NULL)//内存分配不成功
{
printf("malloc failed!\n");
exit(0);
}
memset(str,0,n);//内存中的垃圾内容清空
free(str);
printf("the memeory is be freed!\n");
return 0;
}
psprite
2003-09-17
打赏
举报
回复
#include <stdlib.h> /* For _MAX_PATH definition */
#include <stdio.h>
#include <malloc.h>
void main( void )
{
char *string;
/* Allocate space for a path name */
string = malloc( _MAX_PATH );
if( string == NULL )
printf( "Insufficient memory available\n" );
else
{
printf( "Memory space allocated for path name\n" );
free( string );
printf( "Memory freed\n" );
}
}
ern
2003-09-17
打赏
举报
回复
去看看malloc的源代码?呵呵
C语言
指针
习题
常见
指针
类型,处理方法,和设计思想,数组和
指针
,字符串与
指针
,指向
指针
的
指针
,指向
函数
的
指针
,返回
指针
的
函数
等应用。
全国计算机等级考试二级
C语言
上机模拟试题库(改错题)
2010年3月全国计算机等级考试二级
C语言
上机模拟试题库(改错题),共100题。
C语言
系列:5、
指针
与数组
C语言
系列:5、
指针
与数组 文章目录
C语言
系列:5、
指针
与数组1.
指针
和
地址
2.
指针
与
函数
参数3.
指针
与数组4.
地址
算术运算5. 字符
指针
与
函数
6.
指针
数组以及指向
指针
的
指针
7. 多维数组8.
指针
数组的初始化9.
指针
与多维数组10. 命令行参数11. 指向
函数
的
指针
12. 复杂声明
指针
是一种保存变量
地址
的变量。在C 语言中,
指针
的使用非常广泛,原因之一是,
指针
常常是表达某个计算的惟一途径,另
一个
原因是,同其它方法比较起来,使用
指针
通常可以生成更高效、更紧凑的代码。
指针
与数组之间的关系十分密
C语言
指针
编程实战与课后
习题
解析
在
C语言
中,
指针
是一种特殊的变量类型,用于存储
内存
地址
。其基本声明语法如下:数据类型 *
指针
变量名;例如:int *p;char *q;float *r;这里,p是
一个
指向int类型的
指针
,q是
一个
指向char类型的
指针
,r是
一个
指向float类型的
指针
。不同数据类型的
指针
在声明时需要明确指定其指向的数据类型。例如:int *pi;double *pd;char *pc;这些
指针
在进行加减操作时的行为取决于其指向的数据类型:pi++;
C和
指针
第十一章(笔记与
习题
答案)
第11章 1.为什么使用动态
内存
分配 声明
一个
数组的时候,必须使用
一个
编译时常量指定数组的长度,一般情况我们使用的方法声明
一个
较大的数组,这种方法的优点是简单。但是它的缺点多:首先引用人为的限制,如果程序需要的元素数量超过了声明的长度,就无法处理。为了避免这个情况的发生,就得把
函数
声明的大一些,但是这会导致
一个
恶化,当程序需要的元素数量较少时,矩形数组的大部分
内存
空间
都被浪费了。这种方法还有的缺点是如果输入的数据数量超过了数组的容纳范围,程序必须以一种合理的方式做出响应。 2.m
alloc
函数
m
alloc
C语言
70,026
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章