今天遇到了乙個問題:輸入一行文字,找出其中的大寫字母,小寫字母,空格,數字以及其他字元各有多少?(要求用指標變數)
我的答案:
可以看出,定義字元陣列a長度只有10個位元組,並將位址賦給指標變數c,但在實際執行中,輸入字元超過10時,程式仍能正常執行,並不會報錯。實際查閱資料發現,這樣的做法是不可取的,字元個數超過10時,其後的字元並不是安全的,可能會覆蓋原有有效資料,造成程式出錯,以後應加以注意。但是問題是,題目要求字串的長度並不確定,可見這個方法還是有缺陷的,等到看完後面的鍊錶再來補充。#include void main()
int st(char *t,int o)
else if (*(t+n)>=97&&*(t+n)<=122)
else if (*(t+n)>=48&&*(t+n)<=57)
else if (*(t+n)==32)
else
n++;
} switch (o)
case 1:
case 2:
case 3:
case 4:
}}
陣列越界問題
c陣列越界問題 2010 07 23 22 23 include stdio.h define len 10 int main return 0 問題 為什麼輸入11個字元越界了都不會出錯?但是輸入13個字元卻出現錯誤?補充答案 在c語言中,很容易出現陣列越界問題。上面程式中定義了長度為10的int...
陣列越界問題
首先一點是明白陣列是有固定的大小的,然後是陣列的下標是從0開始到定義的陣列size 1。陣列越界常發生在非法索引訪問陣列,非法是指索引值為負值或大於等於陣列大小,這裡最常迷惑人的是大於等於陣列大小。首先,因為在往陣列中插入資料時,陣列此時的大小是等於陣列中資料長度的,並不是你之前的規定的值。那之前規...
關於陣列的越界問題
華清遠見嵌入式學院講師。關於陣列的越界問題由來已久,大部分人比較困惑的地方是在申請記憶體空間時。下面先來看乙個例子 在這個例子中呢,陣列buf申請了10個空間,資料通過標準輸入存到buf中,然後列印出buf中的內容。編譯 執行。第一次輸入,我輸入9個數 可以正確輸出,沒有問題。但是,當我輸入10個數...