指向函数指针

Max7Chou 2012-09-15 10:44:10
#include <stdio.h>
#include<string.h>

char *func()
{
char array[10];
return array;
}

int main(void)
{
char *str;
str = func();
strcpy(str,"Hello");
printf("%s",str);
return 0;
}
问:怎么使得输出hello
...全文
84 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
AnYidan 2012-09-15
  • 打赏
  • 举报
回复

static char array[10];

图灵狗 2012-09-15
  • 打赏
  • 举报
回复

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

char* func(void)
{
return (char*)malloc(10 * sizeof(char));
}

int main(int argc, char* argv[])
{
char* str = func();
strcpy(str, "Hello");
printf("%s\n", str);

free(str);
return 0;
}
自信男孩 2012-09-15
  • 打赏
  • 举报
回复
#include <stdio.h>
#include<string.h>

char *func()
{
char *array = malloc(20);//char array[10];是局部变量是不能够返回的。
if(array == NULL)
{
fprintf(stderr, "malloc failed!\n");
exit(1);
}
memset(array, 0, 20);
return array;
}

int main(void)
{
char *str;
str = func();
strcpy(str,"Hello");
printf("%s",str);
free(str);
return 0;
}
这是修改之后的代码,参考一下吧。
xiaoji0507 2012-09-15
  • 打赏
  • 举报
回复
不要再函数中返回局部字符串

要想输出hello
char str[10];
strncpy(str, "Hello", strlen("hello"));

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧