Tihiroの頭を休めるIT教室

少しだけ頭使って後は根性

C言語で文字列をセットしたい。それも関数で。

概要

C言語です。いまだに文字列の扱いに慣れないので、自分用メモとしておいておきます。

やりたいことは、文字列をセットする関数を作りたいってことです。

コード

呼び出し側

void testMain() {
    char* str;
    setStr(&str);
    printf("%s", str);
    free(str);
}

呼び出され側

void setStr(char** str) {
    char* setString = "セット文字列";
    size_t len = strlen(setString) + 1;
    *str = malloc(len);
    sprintf_s(*str, len, "%s", setString);
}

NG例

char* getStr() {
    char* resStr = "ゲット文字列";
    return resStr;
}

-> 関数から抜けるとメモリの内容が消去されてしまう。

まとめ

使わないとすぐ忘れちゃう。