gpt4 book ai didi

c - 将本地缓冲区传递给函数

转载 作者:太空宇宙 更新时间:2023-11-04 06:41:54 25 4
gpt4 key购买 nike

我正在将一个本地缓冲区传递给一个函数:

void func1()
{
char buffer[128];
func2(buffer);
}

void func2(char *buff)
{
strcpy(buff, "Some String");
}

现在,当我在函数调用后查看 buff 的值时,它只有“S”,其余为空。

现在,如果我将缓冲区设置为全局缓冲区或静态缓冲区,那么我就可以接收整个字符串。

我的问题是我们将缓冲区的地址传递给函数,所以它是局部的还是全局的应该无关紧要。但是,对于声明为本地的情况,我不会在缓冲区中取回数据。

最佳答案

因为您在堆栈上声明了您的缓冲区,所以在 func1 退出后它是undefined。但是,如果您将其声明为全局或静态,则其作用域将不限于函数调用,因此您可以继续访问它。仅仅拥有缓冲区的地址并不能神奇地使其内容有效。

关于c - 将本地缓冲区传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6701294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com