簡體   English   中英

C編程:在函數內初始化指向char數組的指針

[英]C Programming: Initialize pointer to char array inside a function

我需要幫助初始化另一個函數內的 char數組的指針

我將一個char數組指向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);
}

如何通過引用將字符復制到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);
}

OUTPUT:

Bus error: 10

只需索引*secret

(*secret)[i]

或使用char * help變量:

char* s = *secret; ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM