如何在 'C' 中的任何函数内声明全局变量?
How to declare a Global variable inside any function in 'C'?
我想在 main() 函数中声明一个全局变量...
下面是我希望程序的行为方式
#include<stdio.h>
int a[6];
int main()
{
int n;
scanf("%d",&n);
}
我想创建一个用户给定大小(此处为 n 大小)的数组,并且我想全局访问该数组。
因此,我不想在 main() 函数之外创建大小为“6”的数组,而是想全局创建 'n' 大小的数组,而不是在调用函数时传递数组...
你不能那样做。
最接近它,在文件范围内定义一个指针(即全局),使用分配器函数(malloc()
和系列)为其分配内存,并在其他函数调用中使用相同的指针有必要的。由于分配的内存的生命周期是在以编程方式释放(传递给 free()
)之前,其他函数可以使用分配的内存。
您可能希望使用通过 malloc
分配到堆中的数组
#include<stdio.h>
int *a;
int main()
{
int n;
scanf("%d", &n);
a = malloc(sizeof(*a) * n);
if(a == NULL) {
// malloc error
}
// use your array here
free(a); // at the end of the program make sure to release the memory allocated before
}
您可以在 main()
.
中将指针声明为全局变量并为其分配缓冲区
#include<stdio.h>
#include<stdlib.h>
int *a;
int main()
{
int n;
scanf("%d",&n);
a = calloc(n, sizeof(*a)); /* calloc() initializes the allocated buffer to zero */
if (a == NULL)
{
/* calloc() failed, handle error (print error message, exit program, etc.) */
}
}
我想在 main() 函数中声明一个全局变量...
下面是我希望程序的行为方式
#include<stdio.h>
int a[6];
int main()
{
int n;
scanf("%d",&n);
}
我想创建一个用户给定大小(此处为 n 大小)的数组,并且我想全局访问该数组。 因此,我不想在 main() 函数之外创建大小为“6”的数组,而是想全局创建 'n' 大小的数组,而不是在调用函数时传递数组...
你不能那样做。
最接近它,在文件范围内定义一个指针(即全局),使用分配器函数(malloc()
和系列)为其分配内存,并在其他函数调用中使用相同的指针有必要的。由于分配的内存的生命周期是在以编程方式释放(传递给 free()
)之前,其他函数可以使用分配的内存。
您可能希望使用通过 malloc
#include<stdio.h>
int *a;
int main()
{
int n;
scanf("%d", &n);
a = malloc(sizeof(*a) * n);
if(a == NULL) {
// malloc error
}
// use your array here
free(a); // at the end of the program make sure to release the memory allocated before
}
您可以在 main()
.
#include<stdio.h>
#include<stdlib.h>
int *a;
int main()
{
int n;
scanf("%d",&n);
a = calloc(n, sizeof(*a)); /* calloc() initializes the allocated buffer to zero */
if (a == NULL)
{
/* calloc() failed, handle error (print error message, exit program, etc.) */
}
}