У меня матрица 20х20.Я хочу извлечь куски данных из матрицы.У меня есть
int theMatrix[20][20] = {};//Full code initializes with #'s
int *theMatrixPointer = &theMatrix;
Но затем я получаю предупреждение компилятора, говорящее
предупреждение: инициализация из несовместимого типа указателя
Я продолжил работукод и, похоже, движется по матрице слева направо.По крайней мере, в краткосрочной перспективе.Реализация:
//left to right with pointer;
while(theMatrixPointer)
{
int one = 0;
int two = 0;
int three = 0;
int four = 0;
double currentProduct = 0;
//int stop = 0;
for(int i = 0; i < depth; i++)
{
/*if(!theMatrixPointer)
{
stop = 1;
break;
}*/
int currentValue = *theMatrixPointer++;
printf("%d\n",currentValue);
if(i == 0)
{
one = currentValue;
}
else if (i == 1)
{
two = currentValue;
}
else if (i == 2)
{
three = currentValue;
}
else if (i == 3)
{
four = currentValue;
}
}
/*if(stop)
break;*/
currentProduct = one * (double)two * three * four;
printf("PRODUCT: %f\n",currentProduct);
startPoint++;
theMatrixPointer = startPoint;
}
... со временем разрывается, поскольку данные являются мусором (большие целые числа, которых нет в матрице).Итак, как я могу правильно перебрать эту матрицу с указателем?