簡體   English   中英

char [] vs LPCSTR奇怪的行為

[英]char[] vs LPCSTR strange behavior

您能否解釋為什么,為了轉換如下所示的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的話),而如果我確實要加0的話-一直都是這樣。 為什么我必須加零?

哦,還有一個問題-為什么在C ++中,當我立即用元素初始化數組時,為什么必須在[]中顯式聲明數組的大小? (如果我沒有說明尺寸,那么它將不起作用)

謝謝。

這些函數期望以NULL終止的字符串。

由於只給他們一個指向char數組的指針,因此他們可能無法知道其大小,因此需要一個特定的值(終止NULL字符)來指示字符串的結尾。

暫無
暫無

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

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