数组初始化程序必须是初始化程序列表或字符串文字c

时间:2018-11-14 03:18:20

标签: c string literals initializer psoc

我是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文件。

Screenshot of error message

顺便说一下,这是在使用C语言的PSoC Creator 4.1中。

code file download link through GoogleDrive

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