首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

C 数组实际大小如何计算

2013-04-20 
C数组实际大小怎么计算?假设定义个数组如下char receiveMessage[1024]现在 receiveMessage 里时间存了12个

C 数组实际大小怎么计算?
假设定义个数组如下
char receiveMessage[1024]


现在 receiveMessage 里时间存了12个字节内容

 如何计算这里的实际内容大小 12?

[解决办法]
可以记录下存入的数据;
或者知道存入的类型,例如,你存入一个结构体,就可以用sizeof判断有效数据多少位,
当然,如果不知道这些数据类型,也就无法判断这个数组中那些数据 是有效数据
[解决办法]
你的数组的大小永远是512.
只不过里面放了个12字节的字符串。

[解决办法]
数组的大小有定义决定,里面有多少是有效数据必须有应用程序实现。 


typedef struct packet_s
{
  int len;
  unsigned char content[1024];
}packet_t;

[解决办法]
引用:
数组定义的时候, 最后顺便初始化所有元素为 0, 如char buf[1024] = {0};后面再进行赋值后, 就可以用strlen()计算实际长度(要保证数组中有结束符'\0'); 再笨一点的办法就是直接循环咯, 遇到'\0'就结束循环, 非'\0'则字符数加1;


这种做法,数组多长多多少条指令,RISC构架可能更多

热点排行