有没有办法仅使用malloc和free函数来更改数组大小?

Joh*_*ohn 1 c malloc free memory-reallocation

作为家庭作业,我必须编写一个仅使用mallocfree函数更改数组大小的函数。

我知道如何使用它realloc,但是我不知道如何使用它malloc

typedef struct{
    int *tab;
    int size;
}arr;
Run Code Online (Sandbox Code Playgroud)

我需要编写以下函数:

void changeSizeDyn(arr *Dyn_arr, int size){
    //
}
Run Code Online (Sandbox Code Playgroud)

如作业中所述:它只需要重新分配一次,并且只需要释放一个内存,并且只需要复制旧数组中的元素的一个副本即可。我搜索了很多,但仅使用找到了结果realloc

不使用它甚至可以做到realloc吗?

Che*_*tah 5

  1. 使用malloc分配新大小的内存。
  2. 将所有字节从旧内存复制到新内存。您可以循环执行此操作,实际上不需要为此使用函数(如果是分配的话)。
  3. 释放旧的内存。