【发布时间】:2015-04-07 23:31:26
【问题描述】:
我需要帮助来初始化指向 char 数组的指针在另一个函数中。
我将 char 数组 和 指向 char 数组的指针 传递给一个函数。 我想通过地址/引用/指针将变量“单词”中的字符复制到“秘密”。
我可以通过将值传递给这样的函数来做到这一点:
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);
}
如何通过引用将字符复制到char数组的指针中?
这是我所拥有的(检查了 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
【问题讨论】:
标签: c string function pointers