Мне нужно объявить глобальный двумерный массив в C.
Размер массива определяется шириной и высотой заданного изображения.
Так что мне сначала нужно загрузить картинку, а только потом создать массив. Но если я хочу, чтобы переменная (в данном случае мой массив) была глобальной, я должен объявить ее в верхней части файла, а не внутри функции.
Итак, как я могу объявить массив как глобальный, когда я знаю его размер только после выполнения функции main ()?
EDIT:
(Я также пробовал другие решения, так что этот комментарий относится ко всем из них) @Mimisbrunnr
Во-первых, спасибо за быстрый ответ!
Я пытался, но не вижу, чтобы это сработало. Я, наверное, упускаю что-то глупое, но как «массив» становится глобальным? В test () говорится, что массив не определен
</p>
<pre><code>int *buffer;
int main() {
int i;
int x_size=100;
int y_size=100;
int * buffer = malloc(sizeof(int)*x_size*y_size);
int ** array = malloc(sizeof(int*)*y_size);
for(i = 0; i<y_size; i++) {
array[i]=&buffer[i*x_size];
}
array[0][1] = 5;
test();
return 0;
}
void test(){
printf("%d",array[0][1]);
}