Domanda

L'obiettivo qui è avere un puntatore che funzioni come una matrice 2D. Ho testato il seguente bit di codice per la creazione di un puntatore e una matrice di puntatori interi. Compila e funziona bene. (Questa è una versione semplificata, ho provato ad assegnare/stampare valori a mymatrix[x][y] e funziona bene.)

#include <iostream>
int **mymatrix;

int main(int argc, char* args[]){

  mymatrix = new  int*[100] ;
  for( int n = 0; n <= 100; n++ ){
    mymatrix[n] = new int[200] ;
  }
  return 0;
}

Tuttavia, non appena copio questo frammento su un altro codice (che in precedenza funzionava bene), il codice è ancora compilato ma non riesce a funzionare. Non ci sono errori o avvertimenti relativi a questo frammento. Questo è strano perché mymatrix Non interagisce nemmeno con il resto del codice (dopo essere stato definito non è mai più usato).

L'errore effettivo che interrompe l'esecuzione varia tra il crash quando si tenta di caricare un carattere, Segmentation Fault Quando si tenta di assegnare un valore, e Memory Corruption (con un enorme output di ciò che penso siano thread).

Potrei incollare le sezioni del codice più grande, ma sono quasi convinto che ciò stia accadendo perché non sto definendo questo puntatore nel modo corretto. Sto facendo qualcosa di goffo o pericoloso qui? O dovrei iniziare a guardare attraverso il resto del mio codice per bug?

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top