【发布时间】:2018-08-30 06:49:02
【问题描述】:
免责声明:我对 C 和一般编程很陌生,所以这个问题可能表明缺乏基本知识。
我正在尝试将一组“volatile char”类型的温度读数存储在一个数组中。温度读数和数组分别声明如下:
volatile char TempCelsiusDisplay[] = "+abc.d C";
volatile char temps[60];
在我尝试将温度值存储在数组中之前,其余代码似乎都可以正常工作
temps[59] = TempCelsiusDisplay;
这会引发错误:
Error: A value of type "volatile char *" cannot be assigned to an entity of
type "char" in "main.cpp", Line: 70, Col: 20
有人能解释为什么会这样吗?在我看来,我声明数组的方式不是声明 volatile 字符列表的正确方式,但是我不太明白发生了什么或如何解决它。
在此先感谢 :)
【问题讨论】:
-
编译器告诉你,
temps[59]是一个char,TempCelsiusDisplay是一个volatile chars 的数组。所以,我假设您想将第一个数组中的字符 复制 到第二个数组中。另外,请记住temps[59]是temps数组中的最后一个字符;你可能不想开始复制到那个地方,因为它会溢出。 -
另外,如果你想将多个字符数组存储到
temps,那么你希望temps是一个字符数组数组,即char * volatile temps[60](我也相信指针应该是易失的在这种情况下,不是数据),但很难准确地推荐如何进行分配,因为它没有指定如何分配和释放数组以存储单个温度。
标签: c arrays types volatile chars