我試圖做到以下幾點:
給出CMD參數的程序,我想某些字符串從argv
存儲到char**
,但我是新來的C和我真的不確定如何去做,並不斷髮生分段錯誤。我該怎麼做?CMD參數轉換成char **在C
例子:
程序運行執行行「節目參數3 arg5」
現在我要救arg2
和arg5
到一個新的String數組,讓我們把它叫做 StringFromArgs
,它的一個char**
,
我也可以告訴大家,argv[1]
和argv[3]
是我需要的, 的那些而且可以說我知道的StringsFromArgs
最大容量爲3
我怎樣寫:
StringsFromArgs[0]=argv[1]
StringsFromArgs[1]=argv[2]
StringFromArgs[2]=NULL
編輯 示例代碼
int main(int argc, char** argv){
char** stringsFromArgs;
stringsFromArgs = malloc(3 * sizeof(char*)) ;
int i;int k=0;
for(i=1; i<argc; i++){
if(argv[i]= somecondition){
stringsFromArgs[k] = argv[i];
k++;
}
}
//do something
return 0;
}
* *編輯: 結束了使用你的答案解決它,謝謝!
難道你StringsFromArgs malloc的空間? – Xufeng
我有,它仍然不會出於某種原因... – Tai
給更多的代碼。 – someuser