求助!多个字符串问题
我知道的是,如果要储存多个字符串有两种方法,一种是二维数组比如a,一种是一维指针数组*a.但是要怎么才能让函数返回这两个玩意呢?我自己试了很久都不行,球球各位大佬帮忙,感激不尽!!
#include <stdio.h>
char *abc(char *s)
{
char *a;
int i;
for(i=0;i<5;i++)
{
a=s;
}
return *a;
}
int main()
{
char s,*a;
int i;
s="AB123";
*a=abc(s);
for(i=0;i<5;i++)
{
printf("%s\n",*a);
}
return 0 ;
}
这是我自己敲的代码,最后是没有结果的。
是函数返回的问题,还是我定义不对?
怎么改才能正常输出呢? 本帖最后由 NukaCola 于 2020-6-23 00:44 编辑
#include <stdio.h>
char *point(char *Str)
{
char *temp;
temp=Str;
return temp;
}
int main()
{
char *Str, S[]="String";
for(int i=0;i<5;i++)
{
Str=point(S);
printf("%s\n",Str);
}
return 0;
}
以上是为了实现调用函数而强行写个函数,实际上这个代码很简单。
#include <stdio.h>
int main()
{
char *Str, S[]="String";
for(int i=0;i<5;i++)
{
Str=S;
printf("%s\n",Str);
}
return 0;
} char *abc(char *s)
{
char *a;
int i;
for(i=0;i<5;i++)
{
a=s;
}
return *a;
}
*a=abc(&s);
这个子函数里 char *a;是在栈上,函数退出就释放了,要返回正确的地址可以用malloc分配到堆上,然后返回的指针才能找到正确的地址 malloc.
页:
[1]