gpt4 book ai didi

c++ - 双指针作为参数

转载 作者:行者123 更新时间:2023-11-28 00:03:09 29 4
gpt4 key购买 nike

我有以下原型(prototype):

int Split(const char* str, const char* delim,unsigned int& numtokens,char **tokensRes)

最后一个参数用于返回这个函数的响应。在函数中我们有以下内容:

.
.
char **tokens =(char**) calloc(tokens_alloc, sizeof(char*));
.
.
.
//at the end of the code
tokensRes = tokens;
.

当函数的返回值是 char** 时,当直接返回 tokens 变量的值时,我收到了正确的答案,但是使用上面的方法返回的函数是空的。我怎样才能使这个功能正常工作?

编辑 1:我的意图是接收一组 char 数组,例如:

array[0] = "ABC"
array[1] = "ABC"
array[2] = "ABC"
array[3] = "ABC"

最佳答案

改变原型(prototype):

int Split(const char* str, const char* delim,unsigned int& numtokens,char **tokensRes)

收件人:

int Split(const char* str, const char* delim,unsigned int& numtokens,char ** &tokensRes)

代码 tokensRes = tokens; 将起作用。了解为什么要更多地了解 C++ 和 references .

如果您打算从 C 风格的编码转移到 C++ 编码,那么关于使用字符串的其他答案也是有效的。编码的便利性会提高很多,而且不用担心内存管理和指针(并不经常),这些都是由类自动完成的。只要您遵循良好做法(例如通过引用而不是值传递对象),也不用担心性能下降。

关于c++ - 双指针作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37416938/

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