C:关于返回值

来源:互联网 发布:淘宝联盟会员等级 编辑:程序博客网 时间:2024/05/22 17:03
  典型错例:

char * func()

{

    char  a[100];

    strcpy(a,"****");

    return a;

}

void main()

{

    char b[100];

    strcpy(b,func());

    printf("%s",b);
}

b不可能****,因为a 是局部变量,作用域只在func()内;

正确的做法推荐如下:

char * func(char *b)

{

    strcpy(b,"****");

    return b;

}

void main()

{

    char *b;

    b=(char *)malloc(sizeof(char)*100);

    printf("%s",func(b);

    free(b);
}

即可,上面是对内存地址的操作,把分配好的内存丢进去,随函数怎么处理。如没有返回值,结果是一样的。

最后,不要忘了释放内存,否则容易造成内存泄漏。

原创粉丝点击