#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char* GetName()
{
char *name;
name=(char *)malloc(sizeof (char)*20);//此处申请内存大小,为一个
//定值,更专业需要设置缓冲
name="wakakak"; //给指针赋值
return filename;
}
int main()
{
char* s;
s = GetName();
printf("%s\n",s);
}
注意:当把name=(char *)malloc(sizeof (char)*20);去掉会报错。因为这里声明的name是一个局部变量,退出函数时将被编译器收回分配的空间,这里用的是malloc动态分配的地址.这样退出函数时将不会收走指针。
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
char* GetName(char *s)
{
char *name=s;
//name=(char *)malloc(sizeof (char)*20);//此处申请内存大小,为一个
//定值,更专业需要设置缓冲
name="wakakak"; //给指针赋值
return name;
}
int main()
{
char* s="abc";
s = GetName(s);
printf("%s\n",s);
}
这样也是对的。