在C里面用sizeof(*pointer)能测出数组长度吗?

[复制链接]
查看11 | 回复1 | 2011-9-23 18:18:01 | 显示全部楼层 |阅读模式
加入你声明了一个数组char name[100];方法应该这样写sizeof(name);而不是sizeof(*name)!这个函数返回的是,指针所指向的那块内存区域的大小,数组声明的时候就已经分配了大小,不同的是使用malloc分配的是堆上的空间,而上述的声明方式,是分配的栈上面的内存块。字符数组求字符串个数是strlen(name);字符串个数和内存大小事两码事。就像一栋楼,有100个房间,但是只有50间住人了,你使用sizeof是得到这栋楼的最大容量 -- 100,而strlen求得是目前的数量(有多少有人住)-- 50。懂了么...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行