4

.ini ファイルから値を読み取り、その値を PCSTR (const char *) を受け入れる関数に渡すプログラムを作成しています。機能はgetaddrinfo().

ということで、書きたいと思いますPCSTR ReadFromIni()。定数文字列を返すには、定数文字列を使用してメモリを割り当て、メモリをmalloc()キャストする予定です。.ini ファイルから読み取られた正確な文字数を取得できます。

そのテクニック大丈夫?他に何をすべきか本当にわかりません。

次の例は、Visual Studio 2013 で正常に動作し、必要に応じて "hello" を出力します。

const char * m()
{
    char * c = (char *)malloc(6 * sizeof(char));
    c = "hello";
    return (const char *)c;
}    

int main(int argc, char * argv[])
{
    const char * d = m();
    std::cout << d; // use PCSTR
}
4

3 に答える 3

1

番号。これはOKではありません。あなたがするとき

c = "hello";  

lostによって割り当てられたメモリmalloc
あなたは次のようにすることができます

const char * m()
{
    char * c = (char *)malloc(6 * sizeof(char));
    fgets(c, 6, stdin);
    return (const char *)c;
}    
于 2014-02-05T14:22:45.680 に答える