Question

L'objectif ici est d'avoir un pointeur qui fonctionne comme une matrice 2D. J'ai testé le bit de code suivant pour créer un pointeur et un tableau de pointeurs entiers. Il compile et fonctionne bien. (Il s'agit d'une version simplifiée, j'ai essayé d'attribuer / d'imprimer des valeurs à mymatrix[x][y] Et ça marche bien.)

#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;
}

Cependant, dès que je copie cet extrait dans un autre code (qui s'est bien déroulé bien), le code se compile toujours mais ne parvient pas à s'exécuter. Il n'y a pas d'erreurs ou d'avertissements liés à cet extrait. C'est bizarre parce que mymatrix n'interagit même pas encore avec le reste du code (après avoir été défini, il n'est plus jamais utilisé).

L'erreur réelle qui interrompt l'exécution varie entre les accidents lorsqu'ils essaient de charger une police, Segmentation Fault Lorsque vous essayez d'attribuer une valeur, et Memory Corruption (avec une énorme sortie en journal de ce que je pense être des threads).

Je pouvais coller des sections du code plus grand, mais je suis presque convaincu que tout se passe parce que je ne définis pas ce pointeur de la bonne manière. Est-ce que je fais quelque chose de maladroit ou de dangere ici? Ou dois-je commencer à regarder le reste de mon code pour les bogues?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top