字串拷貝問題,請高手看錯在哪裡

2023-01-04 10:00:51 字數 594 閱讀 1735

1樓:

1全部你可以使用下面**來進行測試:

char *b, *c;

b = mystrdup( "asdf" );

c = mystrdup( "fffsdf" );

雖然在第2行中b的值果然為asdf,但經過第3行後,c的值為fffadf,b的值也為fffadf了。

因為static區域性變數的生存週期和程式的生存週期相同。也就是說,他是獨立與該函式儲存的。那麼每次strdup返回的str位址都是同乙個位址。

因此,採用該函式進行多次賦值時,都是對同乙個儲存區進行賦值,也就是說,b和c實際是具有同一位址的。這和strdup的初衷是相悖的。

2樓:匿名使用者

明顯:strsource是用const char *定義的,而用const char *定義的是唯讀變數,不是常量,而你的程式中用strcpy(str,strsource); 試圖把它改變了,所以會出錯的~!~正確程式應該是這樣:

char * strdup(char * strsource)

3樓:舒拔博士

沒有錯誤,除非max_str_len沒定義。

sql,怎樣遍歷字串,sql遍歷字串問題

declare idx int,str nvarchar 1000 set str 我的字串 set idx 1 while idx len str begin substring str,idx,1 取得 idx所在的這個字元 set idx idx 1end 不用pl sql,只用sql sel...

C符串賦值問題,求高手解答,C 字串賦值問題,求高手解答

型別 變數名 帶雙引號的常量 string a 我是中國人 變數名可以任意起名。不過不能以 數字 漢字 和 符號開頭 除了下畫線 等號後面可以是帶雙引號的任意字段 string abc console.readline 為從控制台窗體輸入值複製給abc 呵呵,這問題搞笑啦!string str va...

C 字串長度與位元組的問題,C 字串有效長度的問題

1 strlen函式是返回字元長度 以空字元為結束符 所以是5 2 sizeof str 返回是指定變數占用空間大小str是指標變數,指標大小為4,所以返回4你可以把str變成陣列 char str 12345 此時str是陣列,所以sizeof str 返回的是6 strlen 函式返回不包含結束...