可以使用字符作爲數組下標嗎?在C/C++中使用字符作爲數組下標字符
我的數組被初始化爲保存256個對象,所以看起來好像訪問超出範圍不成問題。但是,我得到了一些奇怪的分段錯誤,我發現這是由於我在某些情況下讀取的字符值是負值。
但是,我不知道這怎麼可能。然後,我將它轉換爲一個無符號的字符,但這也不起作用。我最終也遇到了邊界問題。我也嘗試將char變量轉換爲整數,然後訪問數組,但我仍然遇到了分割問題。
我能做些什麼來緩解這種情況?能夠通過字符訪問數組非常好,因爲我的程序在ASCII集中的每個字符都有一個數組單元格。這似乎是有道理的,但我不知道爲什麼它不工作。
代碼在哪裏? – Jeeva 2012-07-30 05:33:38
建議您編輯您的問題並向我們顯示您的代碼。會幫助很多。 – kingchris 2012-07-30 05:34:27
字符可以是負值。投射到int將無濟於事,因爲負的字符將會變成負值。無論如何將Casting轉換爲無符號字符(或只是將變量聲明爲無符號字符)都可以工作,好像您在代碼中還有其他問題。 – jahhaj 2012-07-30 05:39:24