gpt4 book ai didi

c - memcpy 实现问题

转载 作者:行者123 更新时间:2023-11-30 19:52:57 26 4
gpt4 key购买 nike

我正在编写一个 memcpy 的小型实现,如下所示。

#include "stdio.h"
int main( )
{
int i=5;
int j=4;
printf("i=%d\t",i);
swap(&i,&j,sizeof(int));
printf("i=%d",i);
return 0;
}


int swap(void *vp1,void *vp2,int size)
{
char *a=(char *)vp1;
char *b=(char *)vp2;

for(int i=0;i<size;i++)
{
*a=*b;
a++;
b++;
}

return 0;
}

这段代码的输出是

i=5 i=33

而不是

i=5 i=4

谁能解释一下代码有什么问题吗?

最佳答案

#include "stdio.h"
int swap(void *vp1,void *vp2,int size)

{

int i;

char *a=(char *)vp1;
char *b=(char *)vp2;

for(i = 0; i<size;i++)
{
*a = *b;
a++;
b++;
}
return 0;
}

int main( )

{

int i=5;
int j=4;
printf("i=%d\t",i);
swap(&i,&j,sizeof(int));
printf("i=%d",i);
return 0;
}

关于c - memcpy 实现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12691982/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com