GCC + 터미널을 사용하여 소수의 배열을 만들고 있습니다.24 + 비트 색인 배열을 가진 맥북 프로에서 segfault를 얻었습니다
내가 한 번 #[email protected]에 물었지만, 난 아직도 이해가 안 :
32 비트에 값을 저장할 수있는 INT (그래서 2^32 개 고유 한 값의 합계)하지만, 배열에 2^24 이상의 값을 가질 수 없습니까?
잘 모르겠지만, Why 24 bits registers?은 이미 내 질문에 대한 답변입니까?
배열을 만들면 long int
이 문제를 해결하지 못합니다. 이 번호를 저장하기 위해 int[][]
을 사용하는 것과 같은 (비례하여 빠른) 방법이 있습니까? 또는 숫자를 저장하기 위해 임의의 바이트 수를 사용하는 include 또는 lib?
int main()
{
int array1[160000];
printf("first array declared fine.\n");
int array2[170000];
int array3[1600000];
printf("first array declared fine.\n");
int array4[1700000];
int array5[16000000];
printf("first array declared fine.\n");
int array6[17000000];
}
나는 당신이하고 싶은 것을 아주 좋아하지 않습니다. 그러나 배열은 2^24 이상의 값을 저장하는 데 문제가 없어야합니다. (약 1600 만 엘리먼트 정도) 예제 코드를 제공 할 수 있습니까? – nuriaion
스택에 배열을 만들고 있습니까? 그렇다면 스택 오버 플로우로 인해 segfault가 발생할 수 있습니다. – Job
배열에는 몇 개의 요소가 있습니까? 세분화 오류가 발생한 색인은 어느 색인에서 발생 했습니까? 코드의 문제가되는 영역을 표시 할 수 있습니까? – vpit3833