[英]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.