Chinaunix首页 | 论坛 | 博客
  • 博客访问: 444344
  • 博文数量: 78
  • 博客积分: 2307
  • 博客等级: 上尉
  • 技术积分: 920
  • 用 户 组: 普通用户
  • 注册时间: 2011-06-04 00:31
个人简介

IT老鸟,信息安全硕士。

文章分类
文章存档

2017年(2)

2012年(21)

2011年(55)

分类: C/C++

2011-10-22 15:21:31

指针也是值传递.这样才能改值.

#include "process.h"
#include "string.h"
#include "stdlib.h"
void testmemory(char **ptr){
     *ptr=(char*)malloc(sizeof(char)*256);
  printf("strlen(ptr)=%d\n",strlen(*ptr));
     //return ptr;
}
int main(int argc, char* argv[])
{
 char* ptr1;
    char a[100];
    testmemory(&ptr1);
    printf("strlen(ptr1)=%d\n",strlen(ptr1));

free(ptr1);

    system("PAUSE");
 return 0;
}

阅读(3264) | 评论(13) | 转发(0) |
给主人留下些什么吧!~~

chenliangmoran2011-11-06 23:57:16

blacksapper: 谢谢。.....
不客气,多交流

blacksapper2011-11-06 15:51:51

chenliangmoran: 这两个指针变量都是在“栈”里的,函数调用结束后会自动释放,不需要去调用“free”。.....
谢谢。

chenliangmoran2011-11-03 11:04:49

blacksapper: 今天有个疑问。
int foo(int m,abc n){
...代码
int *ptr;//这个以后要free掉吗?
struct abc * ptr1;//这个要free掉吗?
。。。代码
reutrn 0;
}
这两根指针都.....
这两个指针变量都是在“栈”里的,函数调用结束后会自动释放,不需要去调用“free”。

blacksapper2011-11-02 14:39:56

chenliangmoran: 呵呵,看具体情况

简单的验证问题,不需要遵守这些条条框框啦........
今天有个疑问。
int foo(int m,abc n){
...代码
int *ptr;//这个以后要free掉吗?
struct abc * ptr1;//这个要free掉吗?
。。。代码
reutrn 0;
}
这两根指针都没有malloc只是指向传入的参数。不用free吧?

chenliangmoran2011-11-01 17:40:40

blacksapper: 当我想再次改的时候发现这个不是我的初衷。我的初衷是一般值传递只要在使用函数的时候
使用
foo(&i)
这样就是引用传递了。
我一般比较懒。于是在foo实现的过.....
呵呵,看具体情况

简单的验证问题,不需要遵守这些条条框框啦...