传递 sprintf 的参数 2 从整数生成指针而不进行强制转换。 C警告

Passing argument 2 of sprintf makes pointer from integer without a cast. C warning

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。我应该怎么做才能解决这个问题? 如果我需要添加有关代码的更多信息,请告诉我。

您正在向 sprintf 传递一个大小参数,但不希望有一个大小参数,请使用 snprintf 传递一个大小参数。