-2

関数内のポインター 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変数に割り当てることでした。出来た。ありがとう 。

4

1 に答える 1