|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
看了小甲鱼 的动态内存分配 写了一下程序 运行结果却显示拷贝出错了 请问程序哪里写错了吗
#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[i]);
}
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[i]);
}
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);
|
|