我是C新手,我正在努力做指针/记忆的事情......
在我的情况下,我正在使用strtol,我需要传递一个** char来保存几个返回值中的一个,但是分配堆空间是有点过分的。我能找到的最干净正确(我希望)的方法是,为此获得堆栈空间,是:
char *_ = NULL;
char **endptr = &_;
ret = strtol("not a number", endptr, 0);
我很好奇,是否有更简洁或惯用的方式来获得这种效果?我觉得很难命名我永远不会使用的东西...
编辑: 澄清一下,我打算使用endptr,而不是_
答案 0 :(得分:3)
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);
答案 1 :(得分:0)
如果您不需要endptr,则可以将空指针传递给strtol。否则,我不担心命名一个你不会使用的变量。虽然我不认为我会像你一样给它_
命名。