Мне нужно объявить глобальный двумерный массив в C.
Размер массива определяется шириной и высотой данного изображения.
Поэтому мне сначала нужно загрузить картинку, а уже потом создавать массив. Но если я хочу, чтобы переменная (в данном случае мой массив) была глобальной, я должен объявить ее в начале файла, а не внутри функции.
Итак, как я могу объявить массив глобальным, если я знаю его размер только после выполнения функции main()?
РЕДАКТИРОВАТЬ: (я также пробовал другие решения, поэтому этот комментарий относится ко всем из них) @Mimisbrunnr Во-первых, спасибо за быстрый ответ!
I've tried but I can't see to make it work. I'm probably missing something stupid, but how does "array" becomes global? It says on test() that 'array' is undeclared
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]);
}