vs2017,c++語言。
今天在程式設計時遇到乙個很奇怪的問題,程式如下:
#include#include#include using namespace std;
int main()
; char * getinfo(vector& conflist, const char *pitem)
return nullptr;
} //servername = 1區;
//serverid = 100000;
conf *pconf1 = new conf;
strcpy_s( pconf1->itemname, sizeof(pconf1->itemname), "servername");
strcpy_s( pconf1->itemcontent, sizeof(pconf1->itemcontent), "1區");
conf *pconf2 = new conf;
strcpy_s(pconf2->itemname, sizeof(pconf2->itemname), "serverid");
strcpy_s(pconf2->itemcontent, sizeof(pconf2->itemcontent), "100000");
vector conflist;
conflist.push_back(pconf1);
conflist.push_back(pconf2);
char * p_tmp = getinfo (conflist, "servername");
if (p_tmp != nullptr)
//我們要釋放記憶體,new 要對應釋放,否則會造成記憶體洩露
vector::iterator pos;
for (pos = conflist.begin() ;pos != conflist.end(); ++pos)
conflist.clear();//這個要不要都行,結束時會系統**
system("pause");
return 0;
}
編譯的時候,提示有以下錯誤:
1>e:\c++\temp\temp\x0503.cpp(18): error c2601: 「getinfo」: 本地函式定義是非法的
1>e:\c++\temp\temp\x0503.cpp(9): note: 此行有乙個「;
char * getinfo(vector& conflist, const char *pitem)
return nullptr;
}int main()
//我們要釋放記憶體,new 要對應釋放,否則會造成記憶體洩露
vector::iterator pos;
for (pos = conflist.begin() ;pos != conflist.end(); ++pos)
conflist.clear();//這個要不要都行,結束時會系統**
system("pause");
return 0;
}輸出結果為:1區
C 中的main函式
1 乙個程式可以包含乙個或者多個函式,但只能必須有乙個命名的main函式 2 main函式是唯一被作業系統顯式呼叫的函式 3 main函式的返回型別必須為int型,返回0值表示執行成功,返回其他值表明有錯誤 出現,每個作業系統的具體返回內容不一樣 4 c 容許主函式main 有或者沒有引數列表,如果...
C 中main函式的引數
眾所周知,每乙個可執行檔案對應的源程式必定有乙個main 函式,而在命令列介面中輸入的引數就是通過main 函式的引數進行傳入的。在很多c 程式設計當中,我們設計的main 函式既沒有輸入引數,也沒有返回值,但實際上,main 函式與其他函式一樣,可以有引數和返回值的。main 函式可以有兩個形式引...
C中main函式傳參
int main int argc,const char agr int argc 命令列引數個數 包含檔名 const char ar 指標陣列 將命令列引數首位址作為元素,加上const關鍵字的意思是陣列中的內容是不能修改的,很明顯,我們進行傳參的時候,裡面的內容是不需要修改的,這就是const...