标题:这个错误该如何修改
取消只看楼主
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
结帖率:90.32%
已结贴  问题点数:20 回复次数:2 
这个错误该如何修改
#include<stdio.h>
#include<stdlib.h>
char *function() {
    char *a = "psa";
    return(a);
}
char *function1() {
    char b[3] = { 'b','c' };
    return(b);
}
void function2(){
    char *e="ughhh";
    printf("%p %s\n",e,e);
}
main() {
    function();
    printf("%p %s\n", function(), function());
    function1();
    printf("%p %s\n", function1(), function1());
    system("pause");
}
搜索更多相关主题的帖子: 错误 修改 char function printf 
2017-09-15 15:58
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
得分:0 
以下是引用吹水佬在2017-9-15 16:12:00的发言:

错误不是已经提示了吗

意思是返回的类型与函数的类型不匹配,要把b定义为指针?比如char *b=NULL;
2017-09-15 16:42
b1592187525
Rank: 1
等 级:新手上路
帖 子:86
专家分:4
注 册:2017-2-15
得分:0 
以下是引用吹水佬在2017-9-15 17:00:39的发言:

分配给局部变量存放数据的空间,在函数过程结束后会被释放,返回这个局部变量空间的地址是无意义,再使用这个地址有可能会出异常。

 下面这段代码局部变量aa存放数据的空间在函数过程结束后是不是也会被释放?如果也被释放为何主函数中an[0],an[1]的值也能被改变?
#include"stdio.h"
#include"stdlib.h"
void function(int aa[2]){
    int t;
    t=aa[1];
    aa[1]=aa[0];
    aa[0]=t;
}
main(){
    int an[2];
    while(1){
        scanf("%d%d",&an[0],&an[1]);
        function(an);
        printf("an[0]=%d an[1]=%d\n",an[0],an[1]);
    }
    system("pause");
}
2017-09-15 17:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-480725-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.065285 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved