首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在char[]缓冲区中保存双值

在char[]缓冲区中保存双值
EN

Stack Overflow用户
提问于 2013-10-05 10:14:36
回答 1查看 221关注 0票数 1

我试图编写一个程序,它使用堆栈来表示某种数据(char、double或string)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
char *data_buffer;
double n;
...
data_buffer = (char*)malloc(4096 * sizeof(char));
...
*(data_buffer + buffer_top) = n; //buffer_top - just offset for first byte
...
printf("%f ", (double)*(data_buffer + buffer_top));

变量data_buffer和buffer_top正确。但产出是奇怪的。只有当n< 127时才正确。为什么会是?

我不想改变data_buffer的类型,因为它还包括不同长度的字符和字符串。

工作示例(!)-在将n写入缓冲区之前测试它的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
126 //push
!! 1.260000e+02 
127 // push
!! 1.270000e+02   
128 // push
!! 1.280000e+02 
. // pop
-128.000000 //error
. //pop
127.000000  //ok
. //pop
126.000000  //ok
123456 // push
!! 1.234560e+05 
. //pop
64.000000 //error
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-05 10:18:10

这两行都缺少对(double *)的强制转换,因此它们分别执行char分配和读取。下面是您的代码在添加一些显式(char)转换以突出显示不正确的类型转换时所做的工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*(data_buffer + buffer_top) = (char) n;
...
printf("%f ", (double) (char) *(data_buffer + buffer_top));

你想要的是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
*((double *) (data_buffer + buffer_top)) = n;
...
printf("%f ", *((double *) (data_buffer + buffer_top)));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19201095

复制
相关文章
Perl在IC中的应用 | 仿真结果自动通知邮件
通过搜索仿真sim.log中 FAIL 、ERROR 、PASS等字符,来判断仿真结果,将其记录到report.log中,包括仿真log路径,时间等信息,并实时发送邮件;
数字芯片社区
2022/02/11
1.2K0
Perl在IC中的应用 | 仿真结果自动通知邮件
Perl在ASIC中的应用——高级篇(1):正则表达式
从今天开始,我们介绍Perl在ASIC应用中的高级篇。高级篇主要介绍正则表达式、module、package、面向对象、进程等。
ExASIC
2020/07/16
1.8K0
解锁环境变量在云原生应用中的各种姿势
应用程序在某些时刻总是需要一些外挂配置,云原生应用的实践是在容器化之前就将应用程序配置保留在代码之外。
有态度的马甲
2020/11/25
1.7K0
解锁环境变量在云原生应用中的各种姿势
在Perl中扩展C库(1):XS语言(更新中)
XS是Perl与C的胶水语言,通过它能在Perl中创建方法,以此扩展C库中的函数或新定义的C函数,详情可参阅《官方手册:perlxs》。
Homqyy
2023/03/06
3.7K0
perl正则表达式匹配后的各种变量
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/138429.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/23
8860
pem 文件详解
.DER:用二进制DER编码的证书;.PEM:用ASCLL(BASE64)编码的证书; .CER:存放公钥,没有私钥; .PFX:存放公钥和私钥(pem 后缀的证书都是base64编码;der 后缀的证书都是二进制格式;crt .cer 后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der);.pfx 主要用于windows平台,浏览器可以使用,也是包含证书和私钥,获取私钥需要密码才可以)
用户8418197
2022/02/17
21.6K0
配置在WebLogic Server中运行CGI程序,提供PHP与Perl的示例
配置在WebLogic Server中运行CGI程序,提供PHP与Perl的示例 相关的详细说明文档可以看这里 http://e-docs.bea.com/wls/docs81/webapp/components.html#100540 其实跟Tomcat里支持cgi没有什么两样,在WebLogic Server中也是通过一个CGIServlet来mapping过去的。 把CGIServlet也反编译回来了,全打包在里面,有兴趣的也可以翻翻源码:)
阿敏总司令
2019/02/28
1.6K0
我在移动web开发中遇到的各种问题
目前(2015年8月3日15:02:24)在大部分安卓手机都发现这个问题,触发bug的条件知道了,但是原因未知。触发bug的条件是需要横向滚动的层不能位于纵向滚动不是body的层下面(后面有具体解释)。
黒之染
2018/10/19
1.7K0
Perl语言程序应用(资料汇总版)
为了更加方便、快捷的实现某些功能,Perl拥有很多其他的控制结构,这些结构也许不是必需的,但可以使程序更加简洁和具有逻辑性。
SYSU星空
2022/05/05
3.6K0
Perl语言程序应用(资料汇总版)
在企业中实施OpenStack:应对各种挑战
作为数以百万计的在线交易背后的支持,PayPal需要可靠的基础设施来支持自己的运营。最近,其为幕后IT技术最新添加的关键技术,就是有7年历史的开源软件平台——OpenStack。 PayPal是云计算工具的早期采用者,随着OpenStack的上市,其在2011年开发了一个概念验证,目的是为了将公有云的益处带给PayPal的私有云,PayPal的云和平台副总裁Jigar Desai说。 “我们的私有云并不强大。我们一直使用供应商解决方案来完成虚拟化。这不是真正的云,” Desai说。 概念验证的成功让Pa
静一
2018/03/27
6520
在企业中实施OpenStack:应对各种挑战
cookie在爬虫中的应用
当爬取需要登录之后才可以获取的页面时,我们就可以借助cookie来实现。cookie是一种存储在本地浏览器中的用户认证信息,具体表现为一串字符串。当我们在浏览器中登录之后,可以通过F12查看对应的cookie信息,示例如下
生信修炼手册
2020/11/02
1.6K0
cookie在爬虫中的应用
EDI在物流中的应用
EDI最初是在由美国企业应用在企业间订货业务活动的电子数据交换系统,其后EDI的应用范围从订货业务向其他业务扩展,如POS销售信息传送业务、库存管理业务、发货送货信息和支付信息的传递业务等。
EDI顾问-杨欢
2019/12/31
2K0
HTTP在abap中的应用
CALL METHOD cl_http_client=>create_by_url EXPORTING url = w_string IMPORTING client = http_client EXCEPTIONS argument_not_found = 1 plugin_not_active = 2 internal_error = 3 O
matinal
2020/11/27
1.3K0
ZooKeeper在HBase中的应用
HBase主要用ZooKeeper来实现HMaster选举与主备切换、系统容错、RootRegion管理、Region状态管理和分布式SplitWAL任务管理等。 HMaster选举与主备切换 HMaster选举与主备切换的原理和HDFS中NameNode及YARN中ResourceManager的HA原理相同。 系统容错 当HBase启动时,每个RegionServer都会到ZooKeeper的/hbase/rs节点下创建一个信息节点(下文中,我们称该节点为”rs状态节点”),例如/hbase/rs/
加米谷大数据
2018/06/04
2.4K0
RandomWalk在GraphEmbedding中的应用
从某个节点的邻居中随机挑选一个节点作为下一跳节点的过程称为随机游走(Random Walk,下文简称游走),多次重复游走过程可产生游走序列。
锅逗逗
2022/08/01
1.1K0
RandomWalk在GraphEmbedding中的应用
javamelody在spirngmvc中的应用
JavaMelody是一款能够监测Java或Java EE应用程序的服务器,它以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。
zhangheng
2020/04/28
1.4K0
scapy在wlan中的应用
Scapy 又是scapy,这是python的一个网络编程方面的库,它在wlan中也有很强大的应用。一般我们买块网卡,然后aircrack-ng套件爆破一下邻居的密码,其实我们可以用scapy写一些有意思的东西。 IEEE802.11 简述 这是WLAN的协议族,有80211b/g/n等等,协议中规定了不同类型的帧(也就是包的类型),分为数据帧、控制帧、管理帧。 控制帧是用来协调信道等提升数据通信可靠性的。 管理帧用来监督、管理加入和退出无线网络的包。 数据帧就是承载上层数据的包。 关系 这些帧和scapy
FB客服
2018/02/23
2.6K0
scapy在wlan中的应用
ZooKeeper在Hadoop中的应用
在Hadoop中,ZooKeeper主要用于实现HA(Hive Availability),包括HDFS的NamaNode和YARN的ResourceManager的HA。同时,在YARN中,ZooK
加米谷大数据
2018/06/04
2.7K0
翻译:Perl代码审计:Perl脚本中存在的问题与存在的安全风险
程序设计语言通常不构成安全风险,风险是由程序员带来的。几乎每种语言都有某些缺陷,这些缺陷在某种程度上可能有助于创建不安全的软件,但软件的整体安全性仍然在很大程度上取决于开发者的安全意识。Perl也有安全“陷阱”,然而大多数Perl程序员并不了解这些陷阱。
王驭停
2021/08/27
2.7K0
LevelDB在测试中应用应用
LevelDB是Google开源的持久化KV单机数据库,这个有点类似Redis,通常我们在存储key-value的数据都会选择Redis。但是唯一的问题就是得有Redis给我们用。LevelDB可以完美解决我们这种问题,存储在本地的文件当中,如果数据量不多的话,可以直接提交在代码中提交文件,然后就可以把数据放在这个数据库中。
FunTester
2022/01/05
1.6K0

相似问题

NSFileWrapper在各种文件NSDocument中的应用

15

冗余事务in,同时匹配perl中的各种模式。

10

如何编写连接到各种stanford nlp应用程序的perl脚本?

10

各种滤波器在ListBox中的应用

23

为用户选项菜单使用数组中的各种元素的Perl

33
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文