读书人

指针的打印有关问题

发布时间: 2013-11-21 23:38:25 作者: rapoo

指针的打印问题
代码如下 : 打印出错,求大神指点!

#include <stdio.h>
#include <string.h>

char *app(char *string1, char *string2)
{
char s1[20] = {0}, s2[20] = {0};

strcpy(s1,string1);
strcpy(s2,string2);

return strcat(s1,s2);
}

void main(void)
{
char *p1 = "abcd";
char *p2 = "cde";
char *p;

p = app(p1,p2);
printf(p);
printf("\n");
}
指针?
[解决办法]
出现乱码是引文,返回的是局部指针的吧!函数返回的是s1的地址,局部指针!
修改了下,看看

#include <stdio.h>
#include <string.h>

char *app(char *string1, char *string2)
{
char s2[20] = {0};

// strcpy(s1,string1);
strcpy(s2,string2);

return strcat(string1,s2);
}

int main(void)
{
char p1[20] = "abcd";
char *p2 = "cde";
char *p;

p = app(p1,p2);
printf("%s\n", p);

return 0;
}

读书人网 >C语言

热点推荐