原创 指针问题

2009-2-27 00:17 2485 5 5 分类: 软件与OS
这个函数对吗?似乎对了,是吗?今天我遇到的就是这个问题,是啊,这是C语言里面比较重要的东西,也是比较常用的,无关乎今天我在网上问的时候,几个人问,你才学C语言吧!唉。。。
*#include "stdio.h"
 #include "stdlib.h"
#include <string.h>
int dd(char *tt)
{
    tt=(char*)malloc(100);
    tt="jhdgfdkl";
    strcpy(tt,"aaaaaaaa");
        return 1;
}
void main(void)
{
    char *t;
    dd(t);
    printf("%s",t);
    free(t);
}

这个函数的问题在于:我传过去的参数,在函数执行的过程中已经改变了指针的地址,返回后t其实没有变化。

怎么改?
一种该法;把函数里面的指针返回 char*dd()
一种就是只用指针的指针,传入地址,直接对地址操作
#include "stdio.h"
 #include "stdlib.h"
#include <string.h>
int dd(char **tt)
{ *tt=(char*)malloc(100);
strcpy(*tt,"jhdgfdkl");
return 1;
}
void main(void)
{ char *t;
dd(&t);
printf("%s\n",t);
}

问题解决的了,但是C语言本身内存管理问题还有指针的问题还有很多问题。。。。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /1 下一条