0

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

通过 GoogleDrive 的代码文件下载链接

4

1 回答 1

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
于 2018-11-14T03:32:40.363 回答