gpt4 book ai didi

android - 在 Android NDK 中读取指向指针值的指针会崩溃

转载 作者:行者123 更新时间:2023-11-30 20:15:23 26 4
gpt4 key购买 nike

我正在尝试发送一个指向函数中指针 ptr 的指针。指针

    int ret = funcptrptr(unsigned char** ptr);

在 funcptrptr() 内部,我将新的信息值分配给 ptrptr 。我什至打印了内容,它似乎正在打印

从此函数调用返回时,我尝试将 ptrptr 取消引用到 p,如下所示,

  unsigned char* p = *ptr;

这与 SIGEGV 崩溃了。为什么 ?

funcptrptr() 内的代码是这样的

*ptrptr  = u_build_value(crypted_vector,random_vector); 

内部函数 u_build_value 实际上使用 malloc 进行分配并将内容作为 unsigned char * 返回

========

解决方案是将内存分配给 ptrptr 变量,正如下面有人指出的那样。有效。谢谢。

最佳答案

假设您在调用 u_build_value 之前没有执行任何操作,则您将尝试取消引用不指向该行任何内容的指针:

*ptrptr  = u_build_value(crypted_vector,random_vector); 
^here your are dereferencing a pointer causing undefined behaviour

将代码更改为:ptrptr = u_build_value(crypted_vector,random_vector);,或者如果您想取消引用它,则为 ptrptr 分配一些内存。

关于android - 在 Android NDK 中读取指向指针值的指针会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19721825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com