C语言中怎么求动态数组大小
来源:互联网 发布:2017英语网络热词 编辑:程序博客网 时间:2024/05/22 17:54
先来个简单的例子
int a[] = {1,2,3};
int arr_len = 0;
arr_len = sizeof(a)/sizeof(int);
解释:sizeof() 关键字是求出对象所占用的内存空间的大小,so, sizeof(a)是算出整个数组占用的空间的大小。
因为是整数数组,一个整数在32位系统上占用4个字节,不同的系统数值可能不同, 用sizeof(int)可以计算出
一个整数占用的内存空间大小。所以用sizeof(a)/sizeof(int)数组中有几个整数,也即算出了数组的大小。
下边来个指针数组
char *str[] = {"John", "Jim"};
int str_len = 0;
str_len = sizeof(str)/sizeof(char*);
指针数组顾名思义数组中存放的都是指针,字符指针。我们可以用char *p = "I'm a worker.";
指向一个字符串常量,而把这些指针放在一起不就是上边说的指针数组吗。或许我们用
char* str[]更能显示的看出上边是指针数组。既然是指针数组那sizeof(str)不就是几个指针占用的空间大小嘛。那除以一个指针所
占用的空间大小不就可以计算出字符指针数组的大小了。
把上边的例子变下
char str[][20] = {"John", "Jim"};
int str_len = 0;
str_len = sizeof(str)/20*sizeof(char);
字符指针数组变成了字符的二维数组。
二维动态数组我们可以看成一个行不固定,列固定(20)的一个表。我们所要计算的就是有几行。sizeof(str)就是计算出这个表占用的总空间的大小,
总空间的大小除以一行占用的空间大小就可以计算出有几行。那一行占用多大空间呢。我们知道一个单元格中存放的是一个char字符sizeof(char)就可以计算出一个单元格所占用的空间大小,那乘以列数(20)就算出一行占用空间的大小了。
- C语言中怎么求动态数组大小
- c语言,求数组大小
- C语言实现动态数组大小
- C语言中怎么求幂?
- C语言中字符数组的大小
- c语言中求数组长度的
- c语言动态调整数组大小如何使用realloc
- C语言中动态二维数组定义
- C语言中动态数组操作实践
- C语言中动态数组的实现
- C语言中定义动态数组
- c语言中动态数组的实现
- C语言中动态数组的实现
- C语言中动态数组(转载)
- C语言中动态数组的实现
- C语言中怎么删除数组中相同的数字
- C语言动态数组
- c语言 动态数组
- 如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?
- java的动态方法调用
- MyEclipse文件查找技巧
- c的内存归纳
- Android Studio编译好的apk放在哪里?
- C语言中怎么求动态数组大小
- 指针与数组的区别
- 图的路径
- WinEdt 6 字体大小等设置(转载)
- Modifiers: virtual, override, new, abstract, sealed, internal
- 中国机器人市场悄然崛起:去年购买数量超过3.6万台
- 关于521
- js怎样连接birth报表
- LINUX环境下的DNW使用