c - 将取消引用的变量传递给函数可以节省内存吗? - C

标签 c pointers

假设我有一个字符串。

char *string;

我想将此字符串传递给函数。哪一个占用内存更少?这个:

void function(char *string)

或者这个:

void function(char **string)
<小时/>

第一个复制字符串并将该副本传递给函数,而第二个则直接传递字符串的内容,我是否正确?如果是这样的话,那么第二个选项会占用更少的内存,对吗?

此外,在将变量传递给函数之前什么时候应该取消引用它?

最佳答案

不,第一个仅传递字符串中第一个 char 的地址。事实上,第二种形式会为您的目的带来额外不必要的开销。

关于c - 将取消引用的变量传递给函数可以节省内存吗? - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25283394/

相关文章:

c - 如何将逗号分隔的 char* 转换为 C 中的 uint32_t[] 数组

c - 使用指针数组输出通过随机片段配置的句子

c++ 我是否需要手动删除一个指向另一个具体类型的 void* 指针?

c++ - 从结构访问变量

pointers - 取消引用结构会返回结构的新副本吗?

c - 为什么这个 C 程序可以运行?

c - 如何在不使用 C 语言中的整数类型的情况下将 2 uint8 模乘一个大数

c - 给出 5 个参数,但在终端中只得到 3 个参数

pointers - 在 golang 中返回一个指针

c - 使用循环 fork 不同数量的 child