社区
C语言
帖子详情
realloc比较奇怪,是真的扩展,还是重新分配了内存空间?下面代码怎么运行报错?
JCC0128
2005-05-19 05:17:25
void main()
{
int a[] = {1,2,3,4} ;
int* p ;
p = (int*)realloc(a , 7*sizeof(int)) ;
p[6] = 9 ;
printf("%d",p[6]) ;
}
...全文
140
5
打赏
收藏
realloc比较奇怪,是真的扩展,还是重新分配了内存空间?下面代码怎么运行报错?
void main() { int a[] = {1,2,3,4} ; int* p ; p = (int*)realloc(a , 7*sizeof(int)) ; p[6] = 9 ; printf("%d",p[6]) ; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cppprogramlover
2005-05-21
打赏
举报
回复
realloc 应该是重新分配内存,并释放原来的内存,否则无法保证分配的内存是连续的。
先查看 以前free的空间又没有后面接着的,如果有,合并两块,剩余的话重新做成一块以便下次malloc用
如果 free的内存没有了,向操作系统申请一块。
sungengyu
2005-05-19
打赏
举报
回复
realloc 应该是重新分配内存,并释放原来的内存,否则无法保证分配的内存是连续的。
popcom
2005-05-19
打赏
举报
回复
学习
liubingqian
2005-05-19
打赏
举报
回复
楼上说的对。
realloc和malloc都是在堆上分配内存。而数组并不是在堆上的。
Eastunfail
2005-05-19
打赏
举报
回复
传给realloc的第一个参数必须是指向一个由crt的堆上由calloc,malloc,realloc动态分配的内存
《你必须知道的495个C语言问题》
书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合
代码
示例阐明要点。 《你必须知道的495个C语言问题》结构...
你必须知道的495个C语言问题
1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的
代码
有什么问题?char*p;*p=malloc(10); 声明风格 1.7 怎样声明和定义全局变量和函数最好? 1.8 如何在C中实现不透明(抽象)数据类型? 1.9 如何...
C语言FAQ 常见问题列表
下面
这样的调用 f(&5); 似乎不行。 o 5.7 C 有 ``按引用传递" 吗? o 5.8 我看到了用指针调用函数的不同语法形式。到底怎么回事? o 5.9 我怎样把一个 int 变量转换为 char * 型?我试了类型转换, 但是不行。 ...
你必须知道的495个C语言问题(PDF)
然后又使用一些内存分配技巧使namestr 数组用起 来好像有多个元素。这样合法和可移植吗? . . . . . . . . . . . . 8 2.7 是否有自动
比较
结构的方法? . . . . . . . . . . . . . . . . . . . . 8 2.8 如何向接受...
当Linux用尽内存
结果非常典型:你不能再分配内存,内核会杀掉一个任务(一般是正在
运行
那个)。一般半随着大量的交换读写,你可以从屏幕和磁盘动向看出来。这个问题
下面
隐含着别的问题:你需要分配多少内存?操作系统给你分配了多少?...
C语言
69,371
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章