gpt4 book ai didi

c++ - 从功能改变值(value)

转载 作者:行者123 更新时间:2023-11-28 08:20:57 25 4
gpt4 key购买 nike

我想在函数中更改 2dim 字符数组。

我这样分配空间

char **u;
u = new char * [ MAX_DEPTH ];
for (i=0; i<MAX_DEPTH; i++)
u[ i ] = new char [ BUFFER_SIZE ];

函数看起来像

rem(char ***arr, int max_length, char *url)
{
int idx=0;
char * p;
int i;

p = strtok (url,"/");

while (p != NULL && idx < max_length)
{

for ( i=0; i<maxUrlSize-1 && p[i] != '\0'; i++)
(*arr)[idx][i] = p[i];
for ( ; i< maxUrlSize-1; i++)
(*arr)[idx][i] = '\0';
}
}

该函数将在我的主程序中使用。

rem( &u, MAX_LEN, url);

但是在离开函数之后什么也没有。有人能解释一下如何以这种方式使用指针吗?

最佳答案

您需要将函数中对tmp 的引用更改为arr。您根本没有访问参数 arr 。此外,您在这里不需要 char ***,因为您没有更改分配给 u 的空间。相反,您应该具有参数 char **arr,您可以将其作为 arr[i][j] 进行访问。然后您应该将 u 传递给 rem,而不是 &u

关于c++ - 从功能改变值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853469/

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