Целью здесь является указатель, который работает как двумерная матрица. Я протестировал следующий фрагмент кода для создания указателя и массива целочисленных указателей. Он компилируется и работает нормально. (Это упрощенная версия, я попытался присвоить / напечатать значения для mymatrix[x][y]
, и она отлично работает.)
#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;
}
Однако, как только я скопирую этот фрагмент в другой код (который ранее работал нормально), код все еще компилируется, но не запускается. Нет ошибок или предупреждений, связанных с этим фрагментом. Это странно, потому что mymatrix
еще даже не взаимодействует с остальным кодом (после определения он никогда больше не используется).
Фактическая ошибка, которая прерывает выполнение, варьируется от сбоя при попытке загрузить шрифт, Segmentation Fault
при попытке присвоить значение и Memory Corruption
(с огромным выводом журнала того, что я считаю потоками).
Я мог бы вставить разделы большего кода, но я почти уверен, что все это происходит, потому что я не определяю этот указатель надлежащим образом. Я делаю что-то неуклюжее или небезопасное? Или я должен начать просматривать остальную часть моего кода на наличие ошибок?