有没有办法把'char (*)[10]'改成'char *'?
Is there a way to change 'char (*)[10]' to 'char *'?
我正在尝试用 C 编写日历系统,但我经常收到同样的错误:
main.c:26:49: warning: format specifies type 'char *' but the argument has type
'char (*)[10]' [-Wformat]
我的密码是
char months[12][10] = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
用于声明“月”,并且
int i;
for(i = 0; i < 12; i++)
{
printf("string = %s \t address = %u\n", months + i, (unsigned int)months + i);
}
用于打印。我尝试用 *months
、**months
和 (*char)months
替换月份,并且 none 有效。我在这里检查了多个问题,但其中一个涉及 scanf
我没有使用。即便如此,我还是尝试了对我不起作用的答案。另一个涉及函数,答案是将 **
附加到参数的开头。那对我也不起作用。我知道我的问题可能很简单,但是我找不到解决方案。如有任何帮助,我将不胜感激。
试试看:
printf("string = %s \t address = %u\n", months[i], (unsigned int)&months[i]);
您必须更改 %u
才能消除另一个警告。
我正在尝试用 C 编写日历系统,但我经常收到同样的错误:
main.c:26:49: warning: format specifies type 'char *' but the argument has type
'char (*)[10]' [-Wformat]
我的密码是
char months[12][10] = {
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December"
};
用于声明“月”,并且
int i;
for(i = 0; i < 12; i++)
{
printf("string = %s \t address = %u\n", months + i, (unsigned int)months + i);
}
用于打印。我尝试用 *months
、**months
和 (*char)months
替换月份,并且 none 有效。我在这里检查了多个问题,但其中一个涉及 scanf
我没有使用。即便如此,我还是尝试了对我不起作用的答案。另一个涉及函数,答案是将 **
附加到参数的开头。那对我也不起作用。我知道我的问题可能很简单,但是我找不到解决方案。如有任何帮助,我将不胜感激。
试试看:
printf("string = %s \t address = %u\n", months[i], (unsigned int)&months[i]);
您必须更改 %u
才能消除另一个警告。