问题提出
在平时写程序的时候,经常遇到这样的场景,程序需要输入一个长度为n的数组,但是n是一个变量.在java中,我们可以这样直接定义:
int n = scanner.nextInt(); int[] num = new int[n];
但是在c语言中,通过以下方式定义,是行不通的
int n; scanf("%d",&n); int num[n];
解决办法
我们可以使用下面的方法来定义一个长度未知的数组,并使用
//定义 int n; int *num; scanf("%d", &n); num = (int *)malloc(n * sizeof(int)); //使用 for (i = 0; i < n; i++) {
scanf("%d", &num[i]); }
那么如何定义一个长度未知的多维数组呢?
int **node; int col,row; scanf("%d", &col); scanf("%d", &row); node = (int **)malloc(col * sizeof(int *)); for (int i = 0; i < n - 1; i++) {
node[i] = malloc(sizeof(int) * row); for(int j=0;j<row;j++){
scanf("%d", &node[i][j]); } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/207706.html原文链接:https://javaforall.net
