当前位置:淘百问>百科知识>realloc函数

realloc函数

2024-02-11 13:38:21 编辑:join 浏览量:565

问题补充说明:#include "stdio.h"#include "stdlib.h"void main(){ int *num,*arr; int i; num = (int *)malloc(sizeof(int) * 10); for(i=0; i<10; i++) { num[i] = i+1; } printf("%o\n",num); arr = num; num = (int *)realloc(num, sizeof(int) * 9); //printf("%d\n",arr[1]); printf("%o\n",arr); printf("%o\n",num);}realloc函数重新辟内存空间num值与前num值辟功前num(arr)所指向空间释放输arr【1】取原num【1】值三输结照理说三都啊realloc函数返址值原num值realloc函数返址值原指针值几率定否与编译器关

realloc函数

楼主对realloc函数的功能不是雷鲜免审束太了解:用realloc函数重新在堆上分配内存时,若在原来所在的位置(即你程序中的用mallo来自c函数分配的num)的基础上能进行扩展(扩大或者收缩),则在原来的位置进行从新分配。如果在原来的位置处无法从新分配更多连续的空间,则在堆的其他地方进行分配,并把之前的位置处的值全部复制进来(这时新旧地址就不一样了)。这里你是360问答缩小了原始空间,显在草数交然可以在原始空间的基玉运有更术需执酒础上进行修改,所以才有楼主所看到的结果。

标签:realloc,函数

版权声明:文章由 淘百问 整理收集,来源于互联网或者用户投稿,如有侵权,请联系我们,我们会立即处理。如转载请保留本文链接:https://www.taobaiwen.com/article/400221.html
热门文章