我正在尝试从SD卡读取数据值。我有一个函数,当它到达文件末尾时返回一个字符和-1。我想将每个字符存储在一个数组中。
我将存储阵列初始化为:
char* storage = (char *) malloc (sizeof(char) * SIZE));
然而,当我打印出值时,我没有得到正确的数据。但是,如果我将其更改为:
int* storage = (char *) malloc (sizeof(char) * SIZE));
它有效。
我初始化指针数组错了吗?
答案 0 :(得分:-1)
我的错误,我应该检查文件的返回功能:
short int alt_up_sd_card_read(short int file_handle);
/ *从给定文件中读取单个字符。如果在文件末尾,则返回-1。任何其他负数 *表示无法读取文件。 0到255之间的数字是从SD卡读取的ASCII字符。 * /
所以我应该分配short int而不是char。感谢。