关于C语言动态分配内存的两个问题
C语言求教......1. realloc前面一定要使用malloc吗?
2. malloc申请出来的数组,如何求它的长度。
例如:int *a = (int *) malloc(5*sizeof(int));
使用类似于求静态数组长度的 sizeof(a)/sizeof(a) 不适用了,那么有没有好的方法能够求出该数组的长度?
King丨小义 发表于 2021-4-7 13:54
第一个问题的答案的确是可以,realloc在使用时通过控制参数可以达到malloc和free的效果。
第二个问题是 ...
没有其他方式,需要自己创建变量保存
1、不一定。比如说int array 和 int *array = (int *)malloc(5 * sizeof(int))使用后都可以调用remalloc
2、这个问题问的。。。动态分配内存空间本来就是用户给一个长度,然后用户又想求这个长度,这不是多此一举吗? 不会 巴巴鲁 发表于 2021-4-6 22:06
1、不一定。比如说int array 和 int *array = (int *)malloc(5 * sizeof(int))使用后都可以调用remalloc ...
第一个问题的答案的确是可以,realloc在使用时通过控制参数可以达到malloc和free的效果。
第二个问题是这样的,我现在程序中realloc是由回调函数调用的,我并不知道它当前的长度,只知道我应该让它的长度加一。如果不通过额外创建一个变量保存的方式,有没有其他方式可以获得该动态数组的长度 第一题:realloc(ptr,size)如果当ptr == null 时,就是当做malloc(size)用的
页:
[1]