c - 返回内容后如何释放指针

标签 c

这是我的代码,调用后如何释放new_double_size。我是 C 初学者,所以感谢您的帮助。

size_t get_doubled_size(Vector *vtr, size_t new_size){
   size_t *new_double_size = malloc(sizeof(size_t));
   *new_double_size = vtr -> capacity;
   while(new_size > *new_double_size){
     *new_double_size *= 2;
   }
   return *new_double_size;
}

在另一个地方,我这样调用它:

int doubled_size = get_doubled_size(....);

最佳答案

显然,您需要在释放它之前获取它的值,例如:

size_t return_value = *new_double_size;
free(new_double_size);
return return_value;

但在这种情况下,您甚至不需要为新大小分配空间...只需直接使用 size_t 变量即可。

关于c - 返回内容后如何释放指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32643224/

相关文章:

c - 如何暂停C程序?

c - 深入学习C的编程资源

c - 扫描文件以获取签名(使用 fread)

c - 用 C 编程 : Changing member value of struct gives segfault

c - C 编程中的返回值

C 编程 - 为什么我的结构中存在垃圾数据?

c - 在运行 OS X 10.12 的并行 VM 上显示内核打印输出中的指针值(而不是 <ptr>)

c - C 中的 unsigned char 与 char — 字符串比较

c - 如何让编译器选择标志更新 ARM 指令?

c - 为什么我的 OpenMP 实现比单线程实现慢? (跟进)