我是C语言的新手。我不知道为什么会收到此错误以及如何解决该错误?
void FPS_PRINT_ENROLLED(){
int checkNum = 0;
int ID = 0;
int num_Enroll = 0;
num_Enroll = Available_ID();
char strNum[3] = 0;
itoa(num_Enroll, strNum);
uint32_t numLen = strlen((char *)strNum);
UART_send_A3("Number of Stored Prints: ", 25);
UART_send_A3(&strNum, numLen);
}
错误消息是:array initializer must be an initializer list or string literal
请参阅错误消息的所附屏幕截图。另外,还会附加c文件。
顺便说一下,这是在使用C语言的PSoC Creator 4.1中。
答案 0 :(得分:0)
char strNum[3] = 0;
此行创建一个三个字符串。然后,将其用作带有strlen和uart_send函数的字符串。
作为C字符串,它必须以空字符结尾,因此您只有两个可用字符。还必须将其初始化为字符串,编译器会告诉您您没有正确执行此操作。
尝试类似以下几种方式之一
char strNum[3] = ""; // Empty string
char strNum[3] = "AB"; // Full string
char strNum[3] = "0"; // String holding the character zero