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

C语言为指针动态分配内存 内存泄露

2014-09-01 21:51 309 查看


C语言为指针动态分配内存--c语言中文网造成内存泄漏示例

1.内存泄露示例http://see.xidian.edu.cn/cpp/html/2752.html
#include <stdio.h>
#include <stdlib.h>
int main(void){
int *p, i;
p = (int *)malloc(6 * sizeof(int)) ;
if (p == NULL) {    //判断是否为空
printf("内存分配出错!");
exit(1);
}
for (i=0; i<6; i++) {
p++;
*p = i;
printf("%2d", *p);
}
printf("\n");
free(p);    //这句运行时出错
return 0;
}
2正确写法
#include <stdlib.h>
int main(void){
int *p, i;
p = (int *)malloc(6 * sizeof(int)) ;
if (p == NULL) {    //判断是否为空
printf("内存分配出错!");
exit(1);
}
for(int j=0; j<6; j++)
printf("%d\n",p+j);
printf("\n");
for (i=0; i<6; i++) {
*p = i;
printf("%2d\n", *p);
if(i<5)
{
p++;

}
}
printf("start p-- p\n");
for(int j=0; j<5; j++)
p--;
printf("start free p\n");
free(p);    //这句运行时出错
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息