雑誌式


まず符号化の問題を解決してから記録して、整理すべきだと思います.
解1*1格の~board問題
シミュレーション内容が0からnの間を循環すると、
各格の動作結果値は異なる格に影響し、次の格の動作値は影響を受ける前に状態で動作しなければならないので、結果値は更新->オリジナルにコピーするように適用されます.
いずれにしてもそのダブルポインタ.
更新するボード値を保存するboard aft
一時記憶変数tmp
ポインタを交換する方法でboard<-boad aftを作りたいと思っていました.
内部swapの後、関数を終了すると、ポインタ値が元に戻ります.
次はソースコードです.

  void spread(int** board, int r, int c, int ac[]) {
      int** board_aft=new int*[r];
      
     //something ~
      
      cout << board << " " << board_aft << endl; //#1
      
      //swap pointer
      int** tmp_p;
      tmp_p = board;
      board = board_aft;
      board_aft = tmp_p;
      tmp_p = NULL;
      
      cout << board << " " << board_aft << endl; //#2
      
      //delete memmory
      //for (int i = 0; i < r; i++) {
      //    delete[] board_aft[i];
      //}
      //delete[] board_aft;
      //delete[] tmp_p;
  }


  int main(void) {
      int r, c, t;
      cin >> r >> c >> t;

      int** board = new int*[r];
      
     spread(board, r, c, ac);
      cout << board << endl; //#3

      //for (int i = 0; i < r; i++) {
      //    delete[] board[i];
      //}
      //delete[] board;

      return 0;
  }
と思ったのですが、

(1)mainから動的にボードを割り当てる
(2)spread関数にboard afterを動的に割り当てる
(3)spread関数におけるboard afterとboardswapの使用
(4)mainで変更したメモリの使用
はい.
実際

4日は私の考えと違います.アドレスが復元されました.
=>
01099 F 48(板)01099 F 90(板厚)
01099 F 90(ボード)01099 F 48(板厚)=>展開中のアドレス値の変更
01099 F 48(マザーボード)=>デフォルト.

  void spread(int** &board, int r, int c, int ac[]) {
  
解決策は次のとおりです.

  int** spread(int** board, int r, int c, int ac[]) {}
  
  int main(void){
 	 board = spread(board, r, c, ac);
  }
  
こうする
ポインタ変数もstackに格納されている変数なのでvalueがコピーされます.
(call by value/reference)
これは基礎を失ったことによる問題です.
試験場でそうすれば、時間を無駄にして終わって後悔します.
learnablege->基礎はこんなに重要ですね...
会社はc++もコードも使いません.
でもCOTEBOを見る時に使っていたC++は死にかけていたようで…もともとあまり得意ではありませんでした.