数组初始值设定项必须是初始值设定项列表或字符串文字 c

array initializer must be an initializer list or string literal c

我是 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中。

code file download link through GoogleDrive

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