C語言,關於字串與字元陣列問題,求高手指點一二啊,謝謝

2021-05-05 16:53:00 字數 753 閱讀 9890

1樓:

c的教科書中一再宣告,使用strcpy(str1,str2)時一定要保證str1有足夠的空間保證str2拷入。言下之意,strcpy不檢查str1是否能容納str2的拷入,正確性完全由程式設計師來控制。你把"01234567891"拷入到str[10]中,前10個字元是保險的,後二個字元就「難說」了。

之所以「難說」,是因為最後2個字元空間沒有分配給str,屬於「自由」空間,系統就可能會分配給別的變數使用。如果不分配給別的變數,那你的**就可能「永遠」正常執行下去,但一旦分配給了別的變數,其內容就可能不再是你拷入的91了……

2樓:匿名使用者

是可以用,但是很危險,呵呵

str是申請了10個單位的記憶體空間,如果他後面有自由的記憶體空間,那麼可以改寫,也就是你程式的strcpy(str,str1);操作,沒什麼危險

如果不是自由的空間,那麼改寫了別的資料,呵呵

3樓:寂寞而莫我知也

陣列越界了,但是編譯器不會報錯。但是在以後寫程式會出現bug,有時會中斷程式等。所以要養成良好的習慣。

4樓:匿名使用者

陣列越界了,str1實質上上也是開闢了一塊記憶體,它將首地址賦值給str ,str裡面存的就是str1裡面的內容了,

5樓:匿名使用者

我不知道你用的是什麼編譯器跑這個程式的,不過我在我的vs2012下跑這程式提示錯誤。

很明顯, 棧分配的空間不夠, 複製出錯.

c語言 陣列與字串 程式設計題,C語言 陣列與字串 程式設計題

include int s int a 100 100 int x,int y min a 0 k p 0 for j 0 j int main printf 對角線之和為 d n sum return 0 include int main for i 0 i printf 轉置矩陣為 n for ...

c語言中字串和陣列的區別,C語言中字串和陣列的區別

這個是字元陣列。c語言字元陣列和字串的區別,字元陣列是一個儲存字元的陣列,而字串是一個用雙括號括起來的以 0 結束的字元序列,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是 0 總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把一個字串看成是一個字元陣列,可以按陣列那樣操作。兩...

c語言字串陣列和字元陣列有什麼區別

這個是字元陣列。c語言字元陣列和字串的區別,字元陣列是一個儲存字元的陣列,而字串是一個用雙括號括起來的以 0 結束的字元序列,雖然字串是儲存在字元陣列中的,但是一定要注意字串的結束標誌是 0 總的來說是沒有區別的,字串就是以字元陣列形式儲存的。可以把一個字串看成是一個字元陣列,可以按陣列那樣操作。兩...