#arrays #c
#массивы #c
Вопрос:
Я хочу использовать очень большой массив, и для этого я попытался динамически создать массив в куче. Но получаю эту ошибку. Пожалуйста, помогите мне запустить это или предложите мне лучший способ работы с большими массивами на c.
#include <stdio.h>
#include<stdlib.h>
long long *arr = (long long*)malloc(1000000001 * sizeof(long long));
void some_function(long long *arr,long long n)
{
//
//
//
}
int main()
{
long long n=1000000000;
for(long long i=0;i<n;i )
{
scanf("%ld",arr[i]);
}
some_function(arr,n);
return 0;
}
Комментарии:
1. Вы не можете вызывать функции за пределами области действия какой-либо другой функции. То есть ваш
malloc
должен быть внутри какой-то функции.2. …. и надеюсь, что вы создаете и используете цель x64, иначе это все равно не сработает, даже если вы переместите выделение внутри функции и исправите несоответствующие спецификаторы формата, которые вы используете.