我是编程新手,正在为一个班级的项目工作。我正在尝试使用键盘输入密码。我无法弄清楚"从字符串常量转换为char *错误我不断得到。
这是我的代码:
Password password = Password( "1234" );
const byte ROWS = 4; //Four rows
const byte COLS = 4; //Four columns
char keys[ROWS][COLS] = {
{ '1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}};
byte rowPins[ROWS] = {
46, 47, 48, 49}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {
50, 51, 52, 53}; //connect to the column pinouts of the keypad
//Create the Keypad
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
任何帮助或想法将不胜感激
答案 0 :(得分:1)
这是一个不答复的问题,但是评论到目前为止还无法解释OP发生了什么,所以这里有一个更长,更详细的镜头。
实际输出看起来像这样
C:\Users\mwhit_000\Desktop\Capstone\Security_System\Security_System2\Security_System2.ino:27:38: warning: deprecated conversion from string constant to 'char*' [-Wwrite-strings]
Password password = Password( "1234" );
^
Sketch uses 11,850 bytes (4%) of program storage space. Maximum is 253,952 bytes. Global variables use 1,022 bytes (12%) of dynamic memory, leaving 7,170 bytes for local variables. Maximum is 8,192 bytes.
来自“sketch”on不是错误消息,它的构建状态。
让我们打破它。
file name:line number:character on that line:type of error: error description
problem line
^ marking where on the above line the compiler thinks the problem is
文件名:C:\ Users \ mwhit_000 \ Desktop \ Capstone \ Security_System \ Security_System2 \ Security_Sy stem2.ino
行号:27
专栏:38
错误类型:警告
描述:不推荐使用从字符串常量转换为'char *'[-Wwrite-strings]
错误行:Password password = Password( "1234" );
所以这就是字面上告诉你,你正在将一个常量字符串转换成一个非常数字符串,直到这里的怪物:Password password = Password( "1234" );
为什么这么糟糕? “1234”是一个常量字符串。 “1234”无法改变。密码采用非常量字符串,并且不承诺不会尝试更改字符串的值。如果密码尝试将“1234”更改为其他内容,则结果未定义。该程序可能会崩溃。它可能会继续运行并在以后崩溃。它可能会吃一只猫。