0

您能否解释一下原因,以便像这样转换 char 数组:

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

LPCSTR要被GetModuleHandleA()and接受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 回答