到底如何将自定义函数返回的字符串(指针)在主函数中调用?

自定义函数的具体内容都没有问题,但是我想把那个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; 
 }

1个回答

char *string;
这里定义了没有分配空间

写成
char *string = (char *)malloc(sizeof(char) * 100);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问

相似问题

1
请教大佬为什么我在C++里定义的string类字符串依次赋值后长度变成零?
2
C语言新手,想请教大佬们一个关于在函数内(不是主函数)分配内存的问题
2
C中strcpy函数 和 指针数组 使用出错。
2
可以用一维指针进行交换字符串的操作吗?
1
编写函数del(char str[])将字符串str中的除头部前导*和后字符数删除后的字符串,
1
问这一函数的功能是。
2
Java如何访问字符串指针?(调用dll)
1
C语言新手问题scanf函数将字符串指针用%c的格式输出结果是什么?
1
利用指针写一函数,实现一长字符串中两短字符串交换,从主函数输入待替换的长字符串以及替换前后两个子串?
5
一个关于字符串函数问题
0
输入字符串a,用指针,将其中数字,字母分别剔除并按原来顺序字符串b和c里,最后分别输出a,b,c三个字符串
2
C#调用dll,使用intPtr接收char*返回值不一致
3
(C语言)在一组字符串中查找某个特定的字符值,编译无错误,但是运行总是报错
2
为什么Java在传递路径字符串时,显示为空指针?
2
如何让结果在主函数输出
1
小白,字符指针内存分配的问题,希望大佬帮忙解答一下
3
PTA 1004 成绩排名 C++ 网页提交的时候“部分正确”,找不出来错误。。
1
为什么键盘输入字符串和文件导入字符串都有错?错误应该怎么改?
1
向函数模板中传入字符串,typeid()和if的搭配会失效,编译不通过,怎么办?
1
C++PrimerPlus第六版第八章第6题求助