gpt4 book ai didi

c - 初始化指向栈上指针的指针

转载 作者:行者123 更新时间:2023-11-30 18:37:11 26 4
gpt4 key购买 nike

我是一个 C 新手,我正在尝试正确地完成指针/内存的事情......

就我而言,我使用的是 strtol,并且需要传递 **char 来保存多个返回值之一,但分配堆空间太过分了。我能找到的最干净正确的(我希望)为此获得堆栈空间的方法是:

char *_ = NULL;
char **endptr = &_;
ret = strtol("not a number", endptr, 0);

我很好奇,有没有更简洁或更惯用的方法来获得这种效果?我觉得命名我永远不会使用的东西很肮脏......

编辑:澄清一下,我确实打算使用 endptr,只是不_

最佳答案

strtol 接受 NULL 作为第二个参数。请参阅http://www.cplusplus.com/reference/cstdlib/strtol/

所以你可以这样编写代码:

ret = strtol("not a number", NULL, 0);

如果它不接受 NULL,您可以避免这样的一行代码:

char *unused;
ret = strtol("not a number", &unused, 0);

关于c - 初始化指向栈上指针的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38235899/

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