返回我有一個程序,它看起來像這樣:分配的指針從功能
EVP_PKEY *generate_RSA_key_and_uuid(unsigned char uuid[16])
{
EVP_PKEY *key_p;
key_p = EVP_PKEY_new();
return key_p;
}
int build_and_save_csr(int dn_entries, X509_REQ *req_p, EVP_PKEY *priv_key_p, char *passphrase)
{
priv_key_p = generate_RSA_key_and_uuid(uuid);
}
int makecsr(X509_REQ *req_p, EVP_PKEY *priv_key_p, char *passphrase)
{
if (build_and_save_csr(2, req_p, priv_key_p, passphrase) != 0) {
fprintf(stderr, "Could not create csr file/private key...\n");
exit(1);
}
return 0;
}
int main(int argc, char *argv[])
{
EVP_PKEY *priv_key_p;
X509_REQ *req_p;
makecsr(req_p, priv_key_p, passphrase);
return 0;
}
在此之後已經跑,*priv_key_p
應包含*generate_RSA_key_and_uuid
返回的值。
在gdb中,我可以看到,在該generate_RSA_and_uuid
包含key_p
正確的值結束,但priv_key_p = generate_RSA_key_and_uuid(uuid);
已被執行之後,priv_key_p
是空的。
有人知道如何正確地賦值給指針嗎?
它不應該是'build_and_save_csr'簽名中的'EVP_PKEY ** priv_key_p'嗎? – jev
@jev:很好的接受 - 謝謝 - 容易錯過'*'! –
完美。非常感謝,這讓我瘋狂 – TomSelleck