【问题标题】:How to store a pointer to a position inside char * buffer, sending to a function, retrieveing a value?如何存储指向 char * 缓冲区内位置的指针、发送到函数、检索值?
【发布时间】:2011-11-16 11:05:15
【问题描述】:

我有一个 char * 缓冲区,我在其中存储任何类型的值进行转换。每次存储浮点数时,我都会将 'len of var' 添加到 'my_position' var。

我需要一种从我的应用程序的另一个点访问数据的方法。 好的,缓冲区+位置给了我指向内存的指针。我该如何退货?作为一个 int ? 我想我必须返回一个 char * 指针。 (pointer_char)

好的,我现在有了这个功能:

 create_float(char * pointer_char) { 
 float * xx = reinterpret_cast<float*> (pointer_char);
}

我有一个崩溃.... 任何帮助和建议将不胜感激......谢谢

【问题讨论】:

    标签: c++ pointers


    【解决方案1】:

    我认为我没有完全理解您的问题,但如果您只需要一个从 char* 缓冲区读取并返回浮点值的函数,您可以这样做:

    float create_float(char* ptr)
    {
       return *(reinterpret_cast<float*>(ptr));
    }
    

    此外,如果没有上下文,很难说出崩溃的原因。你可以在这里发布代码吗?

    【讨论】:

    • 发生崩溃是因为我没有检索到正确的值...有没有办法检查 ptr 是否正确? (也就是说,指向一个正确的地方?)。
    • @tonnot:不,你无法知道,这就是为什么这听起来像是一个糟糕的设计。
    • 我正在使用的缓冲区出现错误。对不起,关闭这个。我开始一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多