C语言在程序运行中动态的申请及释放内存十分方便,一维数组的申请及释放比较简单。
Sample one
?
1
2
3
4
5
6
7
|
#include <stdio.h>
int main()
{
char * p=( char *) malloc ( sizeof ( char )*5); //申请包含5个字符型的数组
free (p);
return 0;
}
|
是否申请二维动态内存也如此简单呢?答案是否定的。申请二维数组有一下几种方法
Sample two
?
1
2
3
4
5
|
/* 申请一个5行3列的字符型数组*/
char **p=NULL; int i;
p=( char ** ) malloc ( sizeof ( char *)*5);
for (i=0;i<5;i++)
p[i]= malloc ( sizeof ( char )*3);
|
这种方式的优点是行和列都是可变的,但释放时必须释放多次,先释放p[n],在释放p
?
1
2
3
4
|
/*释放内存*/
for (i=0;i<5;i++)
free (p[i]);
free (p);
|
Sample three
?
1
2
|
/*用指向数组的指针的方式申请内存*/
char (*p)[3]=( char (*)[3]) malloc ( sizeof ( char )*5*3) //p是一个指向包含3个元素的数组的指针
|
这种方式分配的内存只须释放一次
?
1
|
free (p);
|
这种方式的缺点是显而易见的,列是不可变的!
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关文章
猜你喜欢
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 64M VPS建站:能否支持高流量网站运行? 2025-06-10
- 64M VPS建站:怎样选择合适的域名和SSL证书? 2025-06-10
TA的动态
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
您的支持,是我们最大的动力!
热门文章
-
2025-05-25 60
-
2025-05-27 34
-
2025-05-29 84
-
2025-05-29 67
-
2025-06-04 13
热门评论