为什么这样定义的二维数组不行,要定义成*month[13]才能通过?这两个不都是一个意思吗?
定义二维没有问题啊,你哪里出问题了
我运行的就很正常
#include <stdio.h>
char list[13][5] = {"error","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
char* getMonth(int i) {
if (1<=i && i <= 12) {
return list[i];
}
return list[0];
}
int main(int argc, char const *argv[])
{
printf("%s",getMonth(12));
return 0;
}
你这个函数也怪晕的,整个循环干啥呢
if(n<1 || n>12)
return NULL;
return month[n];
不就完事了么
另外,这个月份英文数组,应该放到函数外部,否则你return month[n]后,这个month数组就被系统回收了啊,是个临时变量,外部用返回的char*是会出问题的