社区
C语言
帖子详情
字符串作参数的时候的sizeof问题
farrio
2006-11-14 01:41:24
如果我的函数声明是 void f01(char d[8]),
函数里面有个变量是 char b[8]。
我发现sizeof(d)和sizeof(b)的结果是不一样的,
sizeof(d)=4,sizeof(b)=8。
据说C语言会把参数转化为指针类型,这样就是一个int型的长度4了。
那么有什么办法可以知道d的真实大小呢?
...全文
133
3
打赏
收藏
字符串作参数的时候的sizeof问题
如果我的函数声明是 void f01(char d[8]), 函数里面有个变量是 char b[8]。 我发现sizeof(d)和sizeof(b)的结果是不一样的, sizeof(d)=4,sizeof(b)=8。 据说C语言会把参数转化为指针类型,这样就是一个int型的长度4了。 那么有什么办法可以知道d的真实大小呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
飞哥
2006-11-14
打赏
举报
回复
如果是在栈上分配的空间,最好加个长度参数
因为在传入参数时 ,数组退化成了指针,sizeof就成了取指针大小
----------
在堆上分配的空间,可以使用 _msize()来搞定
hailongchang
2006-11-14
打赏
举报
回复
函数参数 是char d[8],实际传递的是指针,所以是4个字节
而char b[8],是数组,所以是8个字节
珍惜生命远离CPP
2006-11-14
打赏
举报
回复
参数是指针
这样就好,多方便
void f01(char* p,size_t len)
《c语言深度解析》第5、6章 制
作
c库与c标准库、数组与
字符串
课程内容: 第5章: 库的原理、静态库与动态库、制
作
静态库和动态库、c库函数与OS ... 第6章: 一维数组、二维数组、三维数组、使用malloc开辟多维数组、
字符串
、指针变量/数组/
字符串
与
sizeof
、main函数的argc、argv。
字符串
的
sizeof
长度及strlen长度--
字符串
和
字符串
数组
原文地址:
字符串
的
sizeof
长度及strlen长度 在C/C++中,
字符串
是以零('\0')结尾的。比如,对于下面的
字符串
: "hello" 在最后一个字符'd'后面,还有一个我们肉眼看不见的'\0'字符,
作
为该
字符串
的结束符。所以,...
Sizeof
与
字符串
Sizeof
与
字符串
1.以
字符串
形式出现的,编译器都会为该
字符串
自动添加一个0
作
为结束符 如在代码中写 "abc",那么编译器帮你存储的是"abc/0" 2."abc"是常量吗?答案是有时是,有时不是。 ...
c语言—常见
字符串
函数与
sizeof
详解
1.
sizeof
使用 a.代码1 int main() { int a = 0; int arr[] = { 1,2,3,4 }; printf("%d\n",
sizeof
(a)); printf("%d\n",
sizeof
a); printf("%d\n",
sizeof
(&a));//表示地址的大小 printf("%d\n", ...
strlen()和
sizeof
()求
字符串
长度
由下图我们可以知道
sizeof
()中的操
作
数数可以是数据类型,函数,变量,也可以是具体...strle()所
作
的是一个计数器的工
作
,它从内存的某个位置(可以是
字符串
开头,中间某个位置,甚至是某个不确定的内存区域)开始。...
C语言
69,373
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章