Как я могу получить доступ к значению 123 через массив index []?
Первая строка вашего кода не нужна, а последние три строки не делают то, что вы думаете, они делают.
p0[0] = variable1; //*(p0 + 0) = variable1
p0[1] = variable2; //*(p0 + 1) = variable2
p0[2] = variable3; //*(p0 + 2) = variable3
То, что вы говорите своей программе в отношении первой строки, - это перейти в область памяти, куда указывает p0
, и сохранить там значение variable1
. Но p0
- неинициализированный указатель, поэтому поведение не определено. Затем вы просите вашу программу указать тот же адрес памяти и смещение и что-то там сохранить. Это опасно и может привести к ошибке сегментации.
То, что вы хотите, выглядит примерно так:
int* index[3];
int variable1 = 1;
int variable2 = 2;
int variable3 = 3;
index[0] = &variable1;
index[1] = &variable2;
index[2] = &variable3;
for(int i = 0; i < 3; i++){
printf("*index[%d] = %d\n", i, *index[i]);
}