动态内存分配中使用memcpy拷贝数据的时候出错,请问这是什么原因
看了小甲鱼 的动态内存分配 写了一下程序 运行结果却显示拷贝出错了 请问程序哪里写错了吗#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int *ptr1 = NULL;
int *ptr2 = NULL;
int i;
//第一次申请的内存空间
ptr1 = (int *)malloc(10*sizeof(int));
//进行初始化
memset(ptr1, 0, 10*sizeof(int));
for(i=0;i<10;i++)
{
printf("%d",ptr1);
}
putchar('\n');
//进行若干次操作后发现ptr1的空间不够用
//第二次申请内存空间
ptr2 = (int *)malloc(20*sizeof(int));
//将ptr1中的数据拷贝到ptr2中
memcpy(ptr2, ptr1, 10);
free(ptr1);
for(i=0;i<10;i++)
{
printf("%d",ptr2);
}
putchar('\n');
//进行若干次操作以后
free(ptr2);
return 0;
} //第二次申请内存空间
ptr2 = (int *)malloc(20*sizeof(int));
//进行初始化
memset(ptr2, 0, 20*sizeof(int));
//将ptr1中的数据拷贝到ptr2中
memcpy(ptr2, ptr1, 10*sizeof(int));
free(ptr1);
页:
[1]