如何判断数组是静态还是动态分配的
来源:互联网 发布:淘宝拍照模特应聘 编辑:程序博客网 时间:2024/06/06 00:09
#include <stdio.h>#include <stdlib.h>#define SMALLER(a, b) ((a)>(b) ? (b) : (a))#define MIN(a, b, c) SMALLER(SMALLER(a,b), c)#define ABS(x) ((x) < 0 ? -(x) : (x))void test(int *p){ int x; static int y = 1; static int *q = (int *)malloc(sizeof(int)); unsigned int u = ABS((unsigned int)q-(unsigned int)p); unsigned int v = ABS((unsigned int)&x-(unsigned int)p); unsigned int w = ABS((unsigned int)&y-(unsigned int)p); unsigned int s = MIN(u, v, w); if(p == NULL) { printf("test() in file %s: NULL pointer parameter. ", __FILE__); return ; } if(s == u) { printf("p located in heap. "); } else if(s == v) { printf("p located in stack. "); } else { printf("p located in data section. "); } }int a[100] = {1}; int main(void){ int *b = (int *)malloc(100); int c[100]; test(a); test(b); test(c); free(b); return 0;}
以下是该程序作者的解释:
利用各编译器处理变量和动态内存分配的公共策略,那就是分块处理,是最切实可行的办法。相信有经验的C/C++开发人员都不会否认以下事实:
http://blog.sina.com.cn/s/blog_73b3cd8c0100paf5.html
0 0
- 如何判断数组是静态还是动态分配的
- 如何判断送入函数的是静态分配还是动态分配的数组
- 如何判断变量是数组还是对象
- 如何判断网页是静态还是伪静态
- 如何判断.lib是静态库还是导入库
- 数组的静态分配和动态分配
- 如何区分一个初始化参数是静态还是动态的
- 如何判断一个图是稀疏的还是稠密的
- 如何判断是 插入触发的,还是更新触发的
- 如何判断一个图是稀疏的还是稠密的
- 谈一下怎样判断网页是静态的还是伪静态的?
- 谈一下怎样判断网页是静态的还是伪静态的
- 谈一下怎样判断网页是静态的还是伪静态的?
- 谈一下怎样判断网页是静态的还是伪静态的? .
- 如何判断一个网页是刷新还是关闭的方法。
- 如何判断一个网页是刷新还是关闭的方法。
- java中如何判断输入的是英文还是中文
- 如何判断剪贴板是复制还是剪切的?
- 深入理解HTTP协议、HTTP协议原理分析
- 硬盘的扇面、磁道、扇区,磁柱
- 数组的初始化
- chart.js插件生成折线图时数据普遍较大时Y轴数据不从0开始的解决办法[bubuko.com]
- 颜色空间之YCbCr
- 如何判断数组是静态还是动态分配的
- 绘制 矩形区域(做调试信息等)
- 【UI布局】用XML的selector实现按钮样式自动切换
- JSP路径出现问题
- java设计模式之-建造者模式
- linux makefile 书写详细规则
- [java多线程]进程和线程
- Android图形库Skia(三)-结合Freetype显示文字
- JVM调优总结(转)