【发布时间】:2019-04-16 23:26:43
【问题描述】:
我是 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 中。
【问题讨论】:
-
这一行:
char strNum[3] = 0;是个问题。左边的变量是一个包含三个元素的字符数组。右边的初始化器是一个标量 int。它们的类型不匹配。尝试将初始化程序放在花括号中,这将为每个元素分配 0,如下所示:char strNum[3] = {0}; -
@bruceg 很好的解释。这应该作为答案。
-
伟大的@bruceg,谢谢!
标签: c string literals initializer psoc