Original Problem
I have an existing 2D array that is already filled with data for a matrix. I also have a structure that has a pointer looking like this double ** pointer.

That being said. Here's a miniature version of the problem

#include <stdio.h>

int main (){
	int stuff [2][2];
	stuff[0][0] = 1;
	stuff[0][1] = 2;
	stuff[1][0] = 3;
	stuff[1][1] = 4;
	int **pointer;
	int i;
	int j;
	pointer = stuff[0][0]; //Here lies the problem: Its an incompatible pointer type
	for (i = 0; i < 2; i++){
		for (j = 0; j < 2; j++){
			printf("%i\n", (*(*(pointer+i)+j)));
		}
	}
	return 0;
}

So my problem with this is that I don't understand pointers well enough to see what is wrong with this. From what I understand, the pointer is pointing at the first memory address of array, but I get the incompatible pointer type problem, which is confusing me. Can someone explain why this is wrong and how it should be properly coded. Thanks.

Recommended Answers

All 2 Replies

typecast it pointer = (int **)stuff;

Well this is one of the duh moments. Thanks a lot, I also read up another way of doing it but your way simplifies things a lots.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.