如果我創建像在C中,我可以將字符串保存爲char *,然後使用指針指向其他字符串?
char string[6] = "hello";
char* ptr = (char*) malloc(sizeof(string));
strcpy(ptr, string);
一個字符串,然後我這樣做:
char* ptr2 = ptr;
將它的工作?
一般來說,如果我有一個char *指向字符串的指針,我可以讓其他指針指向那個字符串,並且初始指針指向另一個字符串嗎?
[編輯]
感謝您的反饋,但我有點困惑。我會嘗試從頭開始。
我有我的主要在我做了scanf函數讀取一個字符串,它不是固定大小的,但有一個最大長度。我讀到這樣的
char* input; scanf("%as", &input);
。我認爲'a'標誌會自動分配所需的內存以適應字符串。然後,我必須調用函數
foo(char* s)
,它將字符串作爲輸入。在函數內部,我必須將字符串存儲在內存中。我有兩個選擇:使用參數或創建一個新的malloc和strcpy並使用新的字符串。哪兩個是正確的?我只需要存儲字符串的內存位置,稍後再引用它。
如果我使用參數並將它的存儲位置存儲在某處,這是安全的還是因爲指向字符串的指針是常量會導致任何問題?用malloc創建另一個字符串是否可以解決任何問題,或者它是同一個問題?
直到現在,我已經嘗試了幾種組合,但我無法實現我想要的。任何幫助表示讚賞。
只要你已經爲所有的實際字符串(無論是通過malloc還是聲明char數組)分配空間,你的建議應該適用於你的指針。 – GreenMatt 2011-03-11 16:47:41