**array = malloc(td_size);
                  
                  
                      if (array == NULL) {
                  
                  
                          malloc_error();
                  
                  
                      }
                  
                  
                      for (int i = 0; i < td_size; i++) {
                  
                  
                          array[i] = malloc(od_size);
                  
                  
                      } 
                  
                  
                  
                  
                  
                      return array;
                  
                  
                  }
                  
                  
                  
                  
                  
                  Где я допустил ошибку/ошибки?
                  
                  
                
ты допустил ошибку при выделении памяти, игнорируя размер sizeof(void*), malloc выделяет столько байт сколько попросишь, ты просишь слишком мало. возьми это в качестве примера https://www.geeksforgeeks.org/dynamically-allocate-2d-array-c/
Обсуждают сегодня