0

次のようなchar配列を変換するために、その理由を説明してください。

char strarr[5] = {65,83,67,73,73}; //ASCII

とに受け入れLPCSTRられるためにGetModuleHandleA()、私は最初に最後にGetProcAddress()追加する必要がありますか?0

すなわち私は持っています:

char strarr[6] = {65,83,67,73,73,0};

そして、それからのみとして変換し(LPCSTR)&strarrます。

何らかの理由で、最初のものがたまにしか機能しない場合(つまり、最後に追加0しない場合)、最後にゼロを追加した場合、これは常に機能します。なぜゼロを追加する必要があるのですか?

ああ、副次的な質問です。C++で、配列を要素ですぐに初期化するときに、配列のサイズを[]で明示的に指定する必要があるのはなぜですか。(サイズを指定しないと機能しません)

ありがとう。

4

1 に答える 1

3

NULLこれらの関数は、終了した文字列を想定しています。

char配列へのポインタのみを指定するため、サイズを認識できない可能性があります。したがって、NULL文字列の終わりを示すために特定の値(終了文字)が必要になります。

于 2012-05-26T08:11:31.517 に答える