2015-02-09 64 views
-4

我試圖從SD卡讀取數據值。我有一個函數返回一個字符和一個-1,當它到達文件的結尾。我想將每個字符存儲在一個數組中。創建一個字符數組malloc

我初始化存儲陣列這樣:

char* storage = (char *) malloc (sizeof(char) * SIZE)); 

然而,當我打印值的時候,我沒有得到正確的數據。但是,如果我將其更改爲:

int* storage = (char *) malloc (sizeof(char) * SIZE)); 

它的工作原理。

我初始化指針數組錯了嗎?

+0

你打算怎麼樣? – sashas 2015-02-09 00:03:23

+0

它看起來像返回'int'而不是'char',因爲'char'沒有被指定爲支持負數。 – lared 2015-02-09 00:03:53

+1

閱讀該功能的文檔。將該描述與您用於調用該函數的代碼一起發佈並打印出結果。 – 2015-02-09 00:04:41

回答

-1

我的錯,我應該檢查文件的返回功能:

short int alt_up_sd_card_read(short int file_handle); 

/*讀取從給定文件中的單個字符。如果在文件結尾處返回-1。任何其他負數 *表示無法讀取文件。 0到255之間的數字是從SD卡讀取的ASCII字符。 */

所以我應該分配短整型而不是字符。謝謝。

+2

不,你應該分配'char'或'unsigned char'。在存儲數組中的值的代碼中,或者在打印值的代碼中,您做錯了什麼。 – 2015-02-09 00:51:28

相關問題