我正嘗試在我的程序中創建一個指向main()參數之一的指針。 我設置了初始指針,然後將其設置爲等於數組中的第二個元素,但是當我嘗試編譯時發生錯誤,分段錯誤。這是否因爲指針指向錯誤的地址而發生?從main()參數中提取字符串
下面是代碼:
char *filename;
*filename = argv[1];
printf("The filename is: %s", *filename);
我得到的指針錯誤嘗試投放參數爲int。這是因爲指針實際上是一個整數地址值,我試圖設置它等於一個字符串?
編輯:當我改變到「文件名= argv的[1]」,然後從我的編譯器得到以下錯誤:分配丟棄了指針目標類型的限定。
同樣'的printf( 「文件名是:%S」,文件名);'。 '%s'說明符需要一個字符*指針*。 – dmckee 2011-04-05 23:26:29
當我更改爲「文件名= argv [1]」,然後從我的編譯器中得到以下錯誤:賦值放棄指針目標類型的限定符。 – Kelp 2011-04-05 23:46:31
@Kelp:用main int(int argc,char ** argv)或int main(int argc,char * argv [])'定義main。 – pmg 2011-04-05 23:59:05