我需要幫助初始化指向char數組的指針內部的另一個函數。C編程:初始化指向函數內部的字符數組的指針
我傳遞一個char數組和字符指針陣列到一個函數。 我想通過地址/參考/指針將字符從變量'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);
}
OUTPUT:
Bus error: 10
[請不要投的malloc'的結果()'](http://stackoverflow.com/questions/605845/DO-I-鑄了對結果的-的malloc/605858#605858)。 – Quentin 2015-02-08 00:42:28