gpt4 book ai didi

c - 如何在C中的指针(**指针)的末尾添加一个字符串

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

我试图在 C 中的指针末尾添加一个字符串,我使用下面的代码,问题是我无法释放我分配的内容,因为指向指针的指针具有不存在的值所有分配的内存,如何在指针末尾正确添加字符串到指针?

int     add_environ(char *str, char **envp)
{
char **r;
int i;

r = envp;
i = 0;
while (r[i])
{
i++;
}
//how can I add string without using malloc?
// my problem is I can't free this allocated memory
r[i] = malloc(strlen(str));
if (r[i])
{
r[i] = str;
r[++i] = 0;
return (1);
}
return (0);
}

最佳答案

如果您的问题仅针对环境变量,那么我会使用setenv。如果没有,Waxrat 为您提供了一种解决方案。哦,顺便说一句:您假设在代码中, envp 是任意长的。这也不是真的,所以你的代码迟早会崩溃。根据您的具体要求,我建议在 main 中创建 envp 的深拷贝,然后仅对该副本进行操作,因为这样所有内容都是 malloced 并且需要freed,因此不再需要跟踪任何特殊内容。

关于c - 如何在C中的指针(**指针)的末尾添加一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825399/

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