首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指向函数指针,该怎么处理

2012-09-28 
指向函数指针#include stdio.h#includestring.hchar *func(){char array[10]return array}int main(

指向函数指针
#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

[解决办法]
不要再函数中返回局部字符串

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

[解决办法]
#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;
}
这是修改之后的代码,参考一下吧。
[解决办法]

C/C++ code
#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;}
[解决办法]
C/C++ code
static char array[10]; 

热点排行