我如何全局使用可变长度数组?

问题描述 投票:0回答:2

我希望我的数组成为全局数组,但是我使用scanf()获得了变量。

#include <stdio.h>

int m, n;

int main (void){

    scanf("%d", &m);
    scanf("%d", &n);

    int array[m][n];
    make_arr(array); //initializes array with random numbers
}

那是什么解决方案?

编辑:我使用Farbod Shahinfar的解决方案,但无法将其用于我的功能:

void  make_arr (int  array[m][n] ){
    int i , j ;
    srand(time(NULL));

    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
            array[i][j] = rand() % 2;

我该怎么办?

c arrays function
2个回答
2
投票

您可以声明一个指向数组的全局指针,并在扫描输入后进行设置。


0
投票

如Nate所述,您可以创建一个全局指针,然后使用“ malloc()”向其分配内存。

#include<stdio.h>
#include<stdlib.h>

int *array;

int main() {
  int m, n;
  scanf("%d", &m);
  scanf("%d", &n);

  array = malloc(sizeOf(int) * m * n);
  return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.