' P '

whatever I will forget

C言語 char型array変数を関数に渡す際

これも自メモなのでコンパイルはしませんのであしからず

void main() {
  char tmp[10];
  char* tmp_addr = NULL;
  tmp_addr = tmp;

  func_a(&tmp_addr);
  // omitted
  printf("value:[%.10s]", tmp_addr);
}

void func_a(char** tmp) {
  char tmp_a[10];
  //tmp_aにデータがセットされるロジックさえも省略します
  //データが入ったtmp_aをtmpのシングルポインターにセット
  memcpy(*tmp, tmp_a, 10);
  //omitted
}

基本は構造体配列と同じ。
長さを持ったchar型配列の変数をセットするところが味噌か?
また関数内にも同じ長さを持った変数を定義し、それを関数内で使い、最後にセットするところとか。