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