簡體   English   中英

我收到錯誤消息:表達式:(L“字符串不為null終止”&&0)

[英]I get the error message:Expression: (L “String is not null terminated” & & 0)

當我運行我的程序時,我收到錯誤消息。我不知道如何糾正它。我可以尋求幫助嗎?

char dir[1024]="C:\\Users\\UserName\Desktop\\new folder\\Pauli\\T3";
void check_dir(char *dir)
{
int i;
i = 0;
while (dir[i] != '\0') {
    if (dir[i] == '/')
        dir[i] = '\\';
    i++;
}
strcat_s(dir, sizeof(dir),"\\");
}

sizeof(dir)並沒有明顯滿足您的要求。 由於dir是函數內部的char * ,因此它只為您提供指針(*)的大小。 您唯一的選擇就是也將數組的大小傳遞給您的check_dir()函數:

void check_dir(char *dir, size_t bufsize)
{
    [...]
    strcat_s(dir, bufsize, "\\");
}

(*)在dir聲明為char dir[1024]的范圍內, sizeof(dir) 將為您提供預期的結果。

編輯: check_dir()一句, check_dir()在這里是一個誤稱,因為它不檢查任何內容,而是嘗試將字符串標准化為帶有反斜杠的Windows路徑。 win32_normalize_path()或類似的名稱。 稱為check_<foo>()東西應該返回包含檢查結果的東西(例如int )。

暫無
暫無

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

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