指针与内存

# include "stdio.h"
# include "iostream.h"
# include "malloc.h"
# include "string.h"
//关于函数赋值
void fun1(int num1,int num2)
{
    cout<<"fun1():"<<endl<<"num1="<<num1<<"  "<<"num2="<<num2<<endl;
    int temp=num1;
    num1=num2;
    num2=temp;
    cout<<"num1="<<num1<<"  "<<"num2="<<num2<<endl;
}
void fun2(int *p1,int *p2)
{
    cout<<"fun2():"<<endl<<"*p1="<<*p1<<"  "<<"*p2="<<*p2<<endl;
    int * pt=p1;
    p1=p2;
    p2=pt;
    cout<<"*p1="<<*p1<<"  "<<"*p2="<<*p2<<endl;
}
void fun3(int *p1,int *p2)
{
    cout<<"fun2():"<<endl<<"*p1="<<*p1<<"  "<<"*p2="<<*p2<<endl;
    int temp=*p1;
    *p1=*p2;
    *p2=temp;
    cout<<"*p1="<<*p1<<"  "<<"*p2="<<*p2<<endl;
}

//关于内存
/*编译成功但是程序存在问题,p指针指向的内存空间没有被释放(因为在堆空间中)
要释放free(p)。*/
void mem1()
{
    char * p=(char *)malloc(20);
    strcpy(p,"hello");
    printf("*p=%s\n",p);
    //cout<<*p;只输出h
    free(p);

}



void main()
{
    int a=10,b=20;
//  fun1(a,b);
//  cout<<"执行fun1()"<<"a="<<a<<"  "<<"b="<<b<<endl;
//  fun2(&a,&b);
//  cout<<"执行fun2()"<<"a="<<a<<"  "<<"b="<<b<<endl;
//  fun3(&a,&b);
//  cout<<"执行fun3()"<<"a="<<a<<"  "<<"b="<<b<<endl;
    mem1();


}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值