c语言定义未知的数组
时间: 2023-11-12 12:06:31 浏览: 188
在C语言中,我们可以使用动态内存分配的方式来定义一个长度未知的数组。具体的方法是使用malloc函数来分配内存空间,然后将其转换为相应的数组类型。例如,如果我们需要定义一个长度为n的整型数组,可以使用以下代码:
int n;
scanf("%d", &n);
int *arr = (int *)malloc(n * sizeof(int));
这里,我们首先定义了一个整型变量n,然后通过scanf函数从用户输入中获取n的值。接着,我们使用malloc函数分配了n个整型变量所需的内存空间,并将其转换为整型指针类型。最后,我们就可以像使用普通数组一样使用这个动态分配的数组了。
如果需要定义一个多维数组,可以使用类似的方法。例如,如果我们需要定义一个col行row列的二维整型数组,可以使用以下代码:
int col, row;
scanf("%d%d", &col, &row);
int **arr = (int **)malloc(col * sizeof(int *));
for (int i = 0; i < col; i++) {
arr[i] = (int *)malloc(row * sizeof(int));
}
这里,我们首先定义了两个整型变量col和row,然后通过scanf函数从用户输入中获取这两个值。接着,我们使用malloc函数分配了col个指针类型变量所需的内存空间,并将其转换为指针类型的指针。然后,我们再使用循环分别为每个指针类型变量分配row个整型变量所需的内存空间。最后,我们就可以像使用普通的二维数组一样使用这个动态分配的数组了。
阅读全文