我需要在 C 中声明一个全局二维数组。
数组的大小由给定图片的宽度和高度决定。
所以我首先要加载图片,然后才创建数组。但是如果我想让一个变量(在这种情况下,我的数组)是全局的,我必须在文件的顶部而不是在函数内声明它。
那么,当我在 main() 函数执行后才知道数组的大小时,如何将数组声明为全局数组呢?
编辑:(我也尝试过其他解决方案,所以这个评论指的是所有这些)@Mimisbrunnr 首先,感谢您的快速回复!
我试过了,但我看不到让它工作。我可能错过了一些愚蠢的东西,但是“数组”如何成为全球性的?它在 test() 上说“数组”未声明
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]);
}