• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダブルポインタ?)

ダブルポインタでデータを引き継ぐ方法

このQ&Aのポイント
  • main関数で宣言した変数にDataGetでコピーしたデータを再び使用したい場合、方法が分からない。
  • Mem関数を使用してデータをメモリに確保し、ポインタを引き継ぐことができる。
  • DataGet関数でデータを取得し、main関数で再び使用することができる。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.1

惜しいなあ。 DataGet() → Mem() では、きちんとポインタのポインタを使っているのに。 同じことを main() → DataGet() でもしなくては駄目ですよ。 これだけで、もう分ったとは思いますが、念の為。 void DataGet(char *aa,char **a) ※ { int nSize = 5; (void)Mem(nSize,a); ※ memcpy(*a,aa,nSize); ※ return; } void main() { char aa[20]; char *a = 0x00; memset(aa,0x00,20); memcpy(aa,"test",4); (void)DataGet(aa,&a); ※ /* aデータをここから再び使いたい */ printf("'%s'\n", a); } # 不要なキャストや main() の戻り値が void になってる、とかいろいろ # 気になるところはありますが、そのままにしてあります

関連するQ&A