社区
C++ 语言
帖子详情
一个申请内存空间的问题
sharpeyes
2006-06-22 01:52:31
请问一下:
char szBuffer[sizeof("-32767")*8 + sizeof("65535")*2];
[ ]中的内容怎么解释,它的用意是什么???
...全文
210
7
打赏
收藏
一个申请内存空间的问题
请问一下: char szBuffer[sizeof("-32767")*8 + sizeof("65535")*2]; [ ]中的内容怎么解释,它的用意是什么???
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fireseed
2006-06-22
打赏
举报
回复
没啥,调试器没有编译器行为的问题。sizeof是在编译器就全部确定了,括号里是什么,它就会测什么,如果是个字符串,它自然就会去测自符串的内存长度,如果是指针,就会测指针所占内存的长度。但是编译好了以后,字符串常量全部都进入了进程的另一个只读区,代码只能过能指针地址对这些数据进行访问,而调试器则只可能使用这些指针,所以调试器认为sizeof("-32787")测的是一个指针的长度。测试如下代码就知
const char *p = "-32767";
cout << sizeof(p) << endl;
cout << sizeof("-32767") << endl;
houdy
2006-06-22
打赏
举报
回复
看来我又无知一次,在VS2003下是68????
那位达人解释一下??
houdy
2006-06-22
打赏
举报
回复
sizeof("-32767")*8 + sizeof("65535")*2
"-32767": 这是一个字符串常量,实际上是一个指向内存空间(常量区)的指针,所以:
sizeof("-32767")*8 = 4 * 8 = 32 --> IA32系统下
实际上,由于编译器的优化(常量替代),在编译阶段完成后,sizeof("-32767")*8 + sizeof("65535")*2已经被 4*8 + 4*2 = 40替代了。
PS:求字符串长度的函数是strlen:
>strlen("-32767") = 6
>strlen("65535") = 5
>sizeof("-32767")为7
>sizeof("-65535")为6
>7*8+6*2=68
>char szBuffer[68];
>就是计算常字符串长度,别忘了结尾的'\0'就好了。
这样的形式才是你说的情况:
char charArray[] = "-32767";
sizeof(charArray) = 7;
dreamXren
2006-06-22
打赏
举报
回复
sizeof("-32767")*8 + sizeof("65535")*2
应该等价于
sizeof(char*) * 8 + sizeof(char*) * 2
=40
调试时也是这样。
奇怪就在这里,输出的是68。。。
明天再仔细看看。
ztony007
2006-06-22
打赏
举报
回复
变态的代码,鄙视
lumber
2006-06-22
打赏
举报
回复
char szBuffer[];
这是声明一个char数组.
[]里的值表示数组的大小.
fdimim
2006-06-22
打赏
举报
回复
sizeof("-32767")为7
sizeof("-65535")为6
7*8+6*2=68
char szBuffer[68];
就是计算常字符串长度,别忘了结尾的'\0'就好了。
nginx配置返回文本或json
https://www.cnblogs.com/freeweb/p/5944894.html
【Nginx】配置返回文本或json
有些时候请求某些接口的时候需要返回指定的文本字符串或者json字符串,如果逻辑非常简单或者干脆是固定的字符串,那么可以使用nginx快速实现,这样就不用编写程序响应请求了,可以减少服务器资源占用并且响应性能非常快 先看返回固定的文本和json,都是在server中配置location拦截即可,配置示例如下: 固定文本: location ~ ^/get_text { def...
C++ 语言
65,214
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章