Lỗi khi chạy code C

Mọi người xem giúp em đoạn code này :sob: . Khi mảng d em giảm số phần tử nhỏ xuống thì vẫn chạy ổn, còn khi tăng lên 1000001 phần tử thì nó lại báo lỗi “*.exe has stopped working” :scream:. Em cảm ơn nhiều ạ :joy:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int i,j,t,n,d[1000001],va[1000],sl;
    return 0;
}

Thử khai báo mảng ra khỏi hàm main xem. Chương trình con(main) không nên khai báo mảng có kt lớn

1 Like

Cảm ơn anh :grinning:, code chạy được rồi ạ. Nhưng mà tại sao trong main() không được khai báo mảng lớn anh? Em nghe mọi người nói không nên dùng biến toàn cục

Cho mình hóng với :smile:

theo như mình biết thì kiểu int sẽ có giá trị 2 byte. Độ rộng của miền int sẽ là 2^16 = 65536. Vì vậy không thể khai báo mảng quá 65536 phần tử được. Bản thử lại xem sao. Muốn nhiều hơn thì bạn có thể dùng kiêu long có miền là 4 byte

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?