На самом деле вам нужен только один указатель. Один из способов сделать это - выделить достаточно памяти для хранения всех значений, а затем иметь функции, которые отображают значения x
/ y
в массиве в соответствующее место в памяти. Предположим, что мы хотим, чтобы они были размерами и нашей переменной массива:
int dimX = 10, dimY = 5;
int *array;
Вы можете установить значение следующим образом:
void arraySet(int value, int x, int y) {
array[x + dimX * y] = value;
}
И получить значение таким образом:
int arrayGet(int x, int y) {
return array[x + dimX * y];
}
Заранее выделите память, например, в функции main
:
array = malloc(sizeof(int)*dimX*dimY);
Используйте это так:
arraySet(123, 9, 3); // sets the value of [9, 3] to 123
printf("Memory at 9, 3 is %d\n", arrayGet(9, 3));