标题:关于指针回收问题
取消只看楼主
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
结帖率:96%
已结贴  问题点数:10 回复次数:3 
关于指针回收问题
指针的回收和不回收问题弄不明白,请教各位!

写了个测试程序:
程序代码:
#include<stdio.h>
#include<stdlib.h>


char **tes()
{
    //定义一个指针数组
    char *ch[4];
    char **ret;
    ret=ch;
    //赋值
    ch[0]="asdf";
    ch[1]="fda";
    //返回
    return ret;                  //当函数结束后,这个指针是不是已经回收了?如果是,如何才能让他不回收,返回首地址首地址?请指教!
}

int main()
{
    char **ret;
    ret=tes();
    //输出,内存错误
    for(int i=0; i<2; i++)
    {
    printf("%s",*ret[i]);
    }
    system("pause");
}


搜索更多相关主题的帖子: 测试 回收 
2012-12-22 16:24
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 2楼 TonyDeng
回版主,
程序代码:
char **tes()
{
    //定义一个指针数组
    char *ch[4];
    char **ret;
    ret=ch;
    //赋值
    ch[0]="asdf";
    ch[1]="fda";
    //返回
    return ret; 
这里ret是指向ch指针数组的首元素地址。 return 就是返回这个指针首元素的地址。
 ret=tes();
接受传回来的首地址,然后再输出。
我的理解是这样,请问是不是呢?
2012-12-22 16:41
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
回复 4楼 TonyDeng
版主教训的是。。。不该看指针了,应该看指针指向的内容那里!谢谢!
2012-12-22 16:48
yudeyinji198
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:139
专家分:133
注 册:2012-8-30
得分:0 
谢谢,两位版主!
2012-12-22 16:53



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




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

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