如何动态申请内存和释放内存

FCPPMM2 2005-01-17 01:46:15
全局变量a
int a[1024][1024];

1.a必须为全局变量
2.在特定情况下我需要用到它
3.a占用内存空间太大了,在一般情况下我必须释放它


怎么办?
...全文
411 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
FCPPMM2 2005-01-19
  • 打赏
  • 举报
回复
结贴了
xuelong_zl 2005-01-18
  • 打赏
  • 举报
回复
mark
prgmBaggio 2005-01-17
  • 打赏
  • 举报
回复
*p[N]指针数组
(*p)[N]指向数组的指针
FCPPMM2 2005-01-17
  • 打赏
  • 举报
回复
谢谢各位,特别是 oo(为了名副其实,努力学习oo技术ing) 提供的代码.

我试试你的代码.
可以的话就给分
oo 2005-01-17
  • 打赏
  • 举报
回复
int *p[1024]; //不用括号

for (i=0;i<1024;i++)
p[i] = (int *)malloc(sizeof(int) * 1024); //不用(*p)

for (i=0;i<1024;i++)
free((p)[i]);
winstonch 2005-01-17
  • 打赏
  • 举报
回复


对于全局的指针数组在释放后记得赋空(NULL)就不会出问题了
FCPPMM2 2005-01-17
  • 打赏
  • 举报
回复
是从硬件读取数据的用的.必须足够快才不会漏读.


用指针数组(不是数组指针!)应该可以的.

可惜我写的总是出错.C语言没学扎实.

哪位高手介绍一下指针数组的申请和释放,请给出代码.
winstonch 2005-01-17
  • 打赏
  • 举报
回复
要求这么高,不会是没解吧?

能介绍一下是个什么应用吗?
FCPPMM2 2005-01-17
  • 打赏
  • 举报
回复
很遗憾,对速度要求很高,不能腾出时间读写硬盘,所有不能用文件.
FCPPMM2 2005-01-17
  • 打赏
  • 举报
回复
要用到指针数组才容易操作.


int (*p)[1024];

for (i=0;i<1024;i++)
(*p)[i] = (int *)malloc(sizeof(int) * 1024);

for (i=0;i<1024;i++)
free((p)[i]);

这样对不对?

winstonch 2005-01-17
  • 打赏
  • 举报
回复
我觉得可以在不用的时候把内存中的内容保存到文件中,释放空间,加一个标志来标识这个空间是否存在,如果不存在则分配空间,然后到文件中去读内容,再进行操作。
FCPPMM2 2005-01-17
  • 打赏
  • 举报
回复
给出你们认为合理的方法.
piaozi2003 2005-01-17
  • 打赏
  • 举报
回复
都声明int a[1024][1024]了(未初始化的全局变量),编译时就被放在可执行文件中的section(占了4M)了,还谈什么分配释放.
eastred 2005-01-17
  • 打赏
  • 举报
回复
C:malloc / free

C++:new / delete
WingForce 2005-01-17
  • 打赏
  • 举报
回复
这么大的话...
在win32环境下最好用file mapping

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧