我在 main() 函数中从用户那里获取一些输入,并相应地创建一个数组。由于该数组位置的性质,它对其他函数不可见,我需要将其传递给其他一些函数进行处理。
有没有办法在不为其分配内存并将指针传递给已分配内存的情况下执行此操作? Flight 是结构体 typedef。
int main()
{
do{ // Read # of flights from user
printf("Enter max number of flights to read in from file\n");
printf("--> ");
fflush(stdin);
} while(!(scanf("%d",&num_of_flights)));
flight database[num_of_flights]; // Create database for flights
最佳答案
在C中,你可以在运行时以这种方式分配内存
#include <stdlib.h>
#include <stdio.h>
void print_array(int *array, int array_size){
for(int i = 0; i < array_size; ++i){
printf("%d ", *(array + i));
}
}
int main(){
int *array;
int array_size;
scanf("%d", &array_size);
array = malloc(sizeof(int) * array_size);
// Fill array with ints
for(int i = 0; i < array_size; i++){
*(array + i) = i;
}
print_array(array, array_size);
return 0;
}
关于在运行时创建一个数组并将其传递给 C 中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22583585/