读书人

C 数组实际大小如何计算

发布时间: 2013-04-20 19:43:01 作者: rapoo

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构架可能更多

读书人网 >C语言

热点推荐