初歩的な質問で申し訳ないですが、わかる方教えてください。
関数A内でメモリを確保し、確保したメモリの情報を引数のポインタに返したいです。
関数A呼び出し元の関数B内では、ポインタunsigned char *pを定義します。
unsigned char *pを何か格納しておかないと関数Aを呼び出せないため、*p = NULLとします。
その後関数A内で newでpにメモリを確保したのちに処理を終了すると、関数B内で定義したpがNULLのままとなっております。
これは何が原因と考えられますか?
お手数おかけしますが、よろしくお願いいたします。
失敗したコードを書いていただけますか?(書かれた日本語と動作の違うコードを書いてしまっていることも考えられます)
たとえば、「*p = NULLとします。 」が、「unsigned char * p = NULL;」と書いたのか、「unsigned char * p; *p = NULL;」なのか、文章だけでははっきりしません。
説明が不足しており申し訳ございません。
unsigned char * p = NULL;
A(p);
void A(unsigned char *p)
unsigned char *test = new unsigned char[100];
p = test;
になります。
何がいけないのでしょうか?