传递sprintf的参数2使得指针来自整数而没有强制转换。 C警告

时间:2015-02-02 21:15:42

标签: c warnings

char temp_fname[OSCAR_MAX_FILE_NAME_LEN+1];
char temp_fname_len[2+1];
char temp_cdate[OSCAR_DATE_SIZE+1];
struct stat st;



   sprintf(temp_fname, OSCAR_MAX_FILE_MNAME_LEN+1, "%-30s", argv[i]);
   sprintf(temp_fname_len, 3, "%-2u", (int)strlen(argv[i]));
   sprintf(temp_cdate, OSCAR_DATE_SIZE+1, "%-12u", (unsigned int) st.st_ctime);

我已经包含了stdio.h和string.h。我该怎么做才能解决这个问题? 如果我需要添加有关代码的更多信息,请告诉我。

1 个答案:

答案 0 :(得分:4)

您正在将一个size参数传递给sprintf,但不期望使用snprintf传递一个大小参数。