创建字符数组malloc

创建字符数组malloc,c,arrays,C,Arrays,我正在尝试从SD卡读取数据值。我有一个函数,在到达文件末尾时返回一个字符和一个-1。我想将每个字符存储在一个数组中 我将其初始化为存储阵列,如下所示: char* storage = (char *) malloc (sizeof(char) * SIZE)); 然而,当我打印出这些值时,我没有得到正确的数据。但是,如果我将其更改为: int* storage = (char *) malloc (sizeof(char) * SIZE)); 它起作用了 我初始化指针数组时出错了吗?我的错

我正在尝试从SD卡读取数据值。我有一个函数,在到达文件末尾时返回一个字符和一个-1。我想将每个字符存储在一个数组中

我将其初始化为存储阵列,如下所示:

char* storage = (char *) malloc (sizeof(char) * SIZE));
然而,当我打印出这些值时,我没有得到正确的数据。但是,如果我将其更改为:

int* storage = (char *) malloc (sizeof(char) * SIZE)); 
它起作用了


我初始化指针数组时出错了吗?

我的错误,我应该检查文件的返回函数:

short int alt_up_sd_card_read(short int file_handle);
/*从给定文件中读取单个字符。如果在文件末尾,则返回-1。任何其他负数 *表示无法读取该文件。0到255之间的数字是从SD卡读取的ASCII字符*/


所以我应该分配短int而不是char。谢谢。

您如何打印?它似乎返回
int
而不是
char
,因为
char
甚至不支持负数。请阅读有关函数的文档。将该描述与用于调用函数和打印结果的代码一起发布。还有一些其他错误,因为第一次初始化是正确的short int alt_up_sd_card_read(short int file_handle);/*从给定文件中读取单个字符。如果在文件末尾,则返回-1。任何其他负数*表示无法读取该文件。0到255之间的数字是从SD卡读取的ASCII字符*/否,您应该分配
字符
无符号字符
。您在数组中存储值的代码或打印值的代码中出错。