您的位置:首页 > 编程语言 > C语言/C++

通过void指针实现跨类型变量交换函数

2014-03-27 09:18 423 查看
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(void **src,void **dst)
{
void *tmp;
tmp = *src;
*src = *dst;
*dst = tmp;
}

void swap(void *src,void *dst,int size)
{
void *tmp = malloc(size);
memcpy(tmp,src,size);
memcpy(src,dst,size);
memcpy(dst,tmp,size);
free(tmp);
}

int main(void)
{
int m = 8,n = 9;
int h = 5,k = 6;
int *ph = &h,*pk = &k;

printf("befor swap[%d %d]\n",m,n);
swap(&m,&n,4);
printf("after swap[%d %d]\n\n",m,n);

printf("befor fun[%d %d]\n",*ph,*pk);
//printf("befor fun[%p %p]\n",ph,pk);
fun((void**)&ph,(void**)&pk);
printf("after fun[%d %d]\n",*ph,*pk);
//printf("befor fun[%p %p]\n",ph,pk);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  void指针 c语言 指针
相关文章推荐