gpt4 book ai didi

c - 在 C 函数中声明全局变量(数组)

转载 作者:行者123 更新时间:2023-12-04 03:10:54 25 4
gpt4 key购买 nike

我需要在 C 中声明一个全局二维数组。

数组的大小由给定图片的宽度和高度决定。

所以我首先要加载图片,然后才创建数组。但是如果我想要一个变量(在本例中是我的数组)是全局的,我必须在文件顶部而不是在函数内部声明它。

那么当我在执行 main() 函数后才知道数组的大小时,如何将数组声明为全局数组?

编辑:(我也尝试过其他解决方案,所以这个评论指的是所有这些)@Mimisbrunnr首先,感谢您的快速回复!

我已经尝试过,但我看不出它是否有效。我可能遗漏了一些愚蠢的东西,但是“数组”如何成为全局性的?它在 test() 上说“数组”未声明



int *缓冲区;

诠释主要(){
诠释我;
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 array[i]=&buffer[i*x_size];
}

数组[0][1] = 5;
测试();
返回 0;
}

无效测试(){
printf("%d",数组[0][1]);
}

最佳答案

创建一个全局指针,然后将空间分配给它。

char * buffer;

int main(void) {

buffer = malloc( /* Width * Height */ );

}

关于c - 在 C 函数中声明全局变量(数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6792235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com