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

标签 c global-variables dynamic-allocation

我需要在 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

最佳答案

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

char * buffer;

int main(void) {

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

}

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

相关文章:

c++ - 混合使用 C 和 C++ 时出现重复符号

c - 简单的 PAM 示例

segmentation-fault - Fortran 认为未分配的数组已经分配

variables - 有没有办法将总和传递给包级变量?

java - 防止 Beanshell 中的变量消失

c - C中动态分配内存的互斥量

c - 动态分配文件指针数组

c - 按 1 个位置向左/向右打乱 AVX 256 vector 元素 - C 内在函数

无法从链表末尾删除节点

javascript - 在 Jquery 或 Javascript 中设置变量