gpt4 book ai didi

C 编程 : Initialize pointer to char array inside a function

转载 作者:太空宇宙 更新时间:2023-11-04 02:00:05 25 4
gpt4 key购买 nike

我需要帮助在另一个函数中初始化指向字符数组的指针

我正在将一个字符数组指向字符数组的指针 传递给一个函数。我想通过地址/引用/指针将字符从变量“word”复制到“secret”。

我能够通过将值传递给这样的函数来做到这一点:

char    *set_secret(char *word, char *secret)
{
int i;

for (i = 0; word[i] != '\0'; i++)
{
if (word[i] == ' ')
secret[i] = ' ';
else
secret[i] = SECRET_SYMBOL;
}
secret[i] = '\0';

return(secret);
}

如何将字符通过引用复制到字符数组的指针中


这是我所拥有的(已经检查过 malloc,一切都很好):

来源:

void    init_secret(const char *word, char **secret)
{
int i;
*secret = NULL;
*secret = (char*)malloc( sizeof(char) * strlen(word) + 1 );

// trying changing secret value by reference and not by value (copy)
for (i = 0; word[i] != '\0'; i++)
{
if (word[i] == ' ')
*secret[i] = ' ';
else
*secret[i] = '_';
}
*secret[i] = '\0';
}

int main(void)
{
char *str = "TALK TO THE HAND";
char *secret = NULL;

init_secret(str, &secret);
printf("Secret word: %s\n", secret);

return(0);
}

输出:

Bus error: 10

最佳答案

简单索引*secret:

(*secret)[i]

或使用 char* 帮助变量:

char* s = *secret; ...

关于C 编程 : Initialize pointer to char array inside a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28389231/

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