Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我试图在函数中发送一个指向指针ptr的指针。点
在funcptrptr()内部,我正在为ptrptr分配一个新的信息值。我什至打印了内容,似乎正在打印
从此函数调用返回时,我试图将ptrptr取消引用为p,如下所示,
SIGEGV崩溃了。为什么呢
funcptrptr()内部的代码是这样的
内部函数u_build_value实际上是使用malloc分配的,并将内容返回为未签名的char *
=========
解决方案是将内存分配给ptrptr变量,如以下某人所指出的。有效。谢谢 。
将代码更改为:
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
6年前关闭。
我试图在函数中发送一个指向指针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分配的,并将内容返回为未签名的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
分配一些内存(如果要取消引用)。09-25 19:04