런타임시 C에서 대략 10M 행의 배열을 만들고 싶습니다. 정확한 크기는 런타임에만 알 수 있습니다. 여기에 첫 번째 상처가 있습니다 :C - 런타임시 크기가 10M보다 큰 배열 만들기
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char **argv)
{
printf("running\n");
long long size = atoi(argv[1]);
printf("%lld\n", size);
int myArray[size];
printf("allocated array\n");
for (long long i = 0; i< size; i++) {
myArray[i] = 1;
}
printf("Done");
}
내 문제는이 segfaults입니다.
>./a.out 100000000
running
100000000
Segmentation fault: 11
이 작업을 수행하려면 malloc을 수행해야한다고 생각하지만 올바르게 처리 할 수는 없습니다.
'malloc'으로 무엇을 시도하셨습니까? –
스택이 오버플로되었습니다. 이러한 큰 배열은 힙에 할당됩니다. – Marian
나는 당신의 코드를 시도했지만 어떤'segmentation Fault'도 얻지 못했습니다. – Rocoder