申请堆空间时出现的错误
来源:互联网 发布:win10安装不了软件 编辑:程序博客网 时间:2024/05/16 15:08
#include <stdio.h>#include <stdlib.h>#include <string.h>struct foo{int a;//4char b[6];//8char *p;//4char c[0];};#define EXPAND_MEM15int main(){printf("size =%u\n",sizeof(struct foo));struct foo *pf = (struct foo*)malloc(sizeof(struct foo)+EXPAND_MEM*sizeof(int));
<span style="white-space:pre"></span>/* 之前代码
<span style="white-space:pre"></span>*<span style="white-space:pre"></span><span style="font-family: Arial, Helvetica, sans-serif;">struct foo *pf = (struct foo*)malloc(sizeof(struct foo)+EXPAND_MEM);//这样后面赋值的时候就会越界</span><span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="white-space:pre"></span>*/if(!pf){printf("there is not enough memory!\n");exit(EXIT_FAILURE);}strcpy(pf->b,"hello");printf("pf->b :%s,pf :%p\n",pf->b,pf);int i;for(i=0;i<EXPAND_MEM;i++){*(pf->c +i)=i;}#if 1printf("pf->b :%s,pf :%p\n",pf->b,pf);printf("pf->c=[");for(i=0;i<EXPAND_MEM;i++){printf("%d ",*((pf->c)+i));}printf("]\n");#endifpf->p = (char *)calloc(EXPAND_MEM,sizeof(char));if(!(pf->p)){printf("there is not enough memory!\n");exit(EXIT_FAILURE);}strcpy(pf->p,"I LOVE Linux");printf("pf->p %s\n",pf->p);free(pf->p);free(pf);return 0;}
0 0
- 申请堆空间时出现的错误
- 申请并返回堆空间上的二维空间
- 关于堆空间溢出的错误解决办法
- 在堆上申请一个容器空间
- 申请Android Maps API Key,以及出现的错误
- 堆内简单申请指定字节数的int型变量的空间并且返回地址
- 在堆上申请空间存放对象的内存管理及析构函数调用时机
- 关于eclipse环境下堆空间溢出的错误解决办法
- strcpy时如何有效的在堆区申请内存
- 申请堆空间函数封装(两种方法)
- c中malloc申请堆空间使用及案例
- 动态申请内存,释放出现错误
- 出现“烫”“屯”字样,则说明你的程序是VC编写的DEBUG版程序,“烫”是未初始化的栈空间,“屯”是申请后未做过内存清零或COPY的堆内存。 写入文件是“屯”,则需要找下你申请的内存是不是没经过内存复
- 申请日本空间时用的网站简介
- 局部变量申请栈空间时的入栈顺序
- 局部变量申请栈空间时的入栈顺序
- 初始化string对象时,申请空间的秘密
- C语言 用free函数释放在堆上申请的空间,这个函数到底做了什么
- springmvc+mongodb+maven 项目测试代码
- 视频编解码学习之二:编解码框架
- Linux内存管理基本概念(转载自董的博客)
- [ACM] hdu 5001 Walk (概率DP)
- U盘安装Ubuntu 14.04 LTS正式版
- 申请堆空间时出现的错误
- 反射机制
- 《数据结构》信管1133班和1134班同学链接
- uva 10069 Distinct Subsequences 【dp+大数】
- VMWare虚拟机下CentOS 配置网络实现远程连接,提供Web访问
- SQL——select语句的三种基本用法:连接,嵌套,exists
- 【网络流基础】hdu 1532 Drainage Ditches
- wpa_supplicant, wpa_cli用法
- Sublime Text 2搭建Go开发环境(Windows)