[英]char **argv[] segfaults when trying to get input from the command line
[英]Values of Argv when something is not entered from command line
嗨我想知道argv [1]或argv [2]會是什么值,如果我沒有提供命令行參數
你已經得到了大量錯誤的答案。 如果在命令行中沒有輸入任何內容,則argv[0]
通常仍然包含程序的名稱,因此argc
將為1. argv[argc]
將包含一個空指針(始終在每個符合C或C ++的實現上)。 在C標准中,要求是§5.1.2.1.1/ 2的第二個要點。 在C ++標准中,它是§3.6.1/ 2。
如果你運氣好的話就是一個段落錯誤,如果你不幸的話就是垃圾。
使用argv的唯一安全方法是將其視為argc元素的數組。
for (int ii = 0; ii < argc; ++ii)
{
// safe to use argv[ii];
cout << argv[ii];
}
int ix = somevalue;
if (ix >= 0 && ix < argc)
{
// safe to use argv[ix];
}
傑里的注意事項。 在大多數體系結構上取消引用NULL時,會出現段錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.