原创
指针问题
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语言本身内存管理问题还有指针的问题还有很多问题。。。。
文章评论(0条评论)
登录后参与讨论