自定义函数的具体内容都没有问题,但是我想把那个string指针在主函数中调用
并且 打印出来~但是我无论怎么求,打印出的指针值总是空指针,实在想不明白~
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
char* reverse(int hdays, char hmonth[], int hyears)
{
int tdays1,tyears,tdays2,tre;
int days;
int i;
char *a[21]={"pop","no", "zip", "zotz", "tzec", "xul", "yoxkin", "mol", "chen", "yax", "zac", "ceh", "mac", "kankin", "muan", "pax", "koyab", "cumhu"};
char *b[21]={"imix","ik","akbal","kan","chicchan","cimi","manik","lamat","muluk","ok","chuen","eb","ben","ix","mem","cib","caban","eznab","canac","ahau"};
char *string;
for(i=0;i<19&&strcmp(hmonth,a[i])!=0;i++);
days=i*20+(hyears)*365+hdays+1;
tyears=days/260;
tre=days%260;
tdays1=(tre%13==0)?13:tre%13;
tdays2=(tre%20==0)?20:tre%20;
sprintf(string,"%d %s %d",tdays1,*(b+tdays2-1),tyears);
return string;
}
int main (void)
{
int hdays, hyears;
char hmonth[10];
char *sto [10];
int ncycle,i;
scanf("%d",&ncycle);
for(i=0;i<ncycle;i++)
{
scanf("%d.%s%d",&hdays,hmonth,&hyears);
sto[i]=reverse(hdays, hmonth, hyears);
printf("%d",i);
}
printf("%d\n",ncycle);
for(i=0;i<ncycle;i++)
printf("%s",sto[i]);
return 0;
}