While compiling a problem:
Geeks For Geeks: First Repeating Element on a Windows operating system I noticed that I was not getting any output for my solution. But when I compiled the same code on a Linux operating system and on online compilers, it worked absolutely fine without producing any errors.
Code:
#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin>>n;
    int arr[n];
    for(int i=0; i <n; i++) {
        cin>>arr[i];
    }
    int size= 1e6+1; // WA on windows
    int A[size];
    int min_index=INT_MAX;
    for(int i=0; i<size; i++) {
        A[i]=-1;
    }
    for(int i=0; i<n; i++) {
        if(A[arr[i]]!=-1)
            min_index=min(min_index, A[arr[i]]);
        else
            A[arr[i]]=i;
    }
    if(min_index==INT_MAX) 
        cout<<"-1";
    else
        cout<< min_index+1;
    return 0;
}
Sample Test Case:
7
1 5 3 4 3 5 6
Expected output:
2
Output on Windows: Screenshot
Output on Linux: Screenshot
Explanation for the program from line 14 of code:
I created an array A of size 1e6+1 to store value i on its arr[i]th index.
Array A was earlier initialized with value -1. It runs for n number of times and variable min_index stores the index of the least repeating number from the array arr.
After initializing smaller values of array int size = 10 and using very small test cases(also max value of arr[i] is lesser than size of A; I realize that the program runs perfectly in Windows.
As far as I understand, Windows might be having some trouble intializing arrays of such large length (Please correct me if I'm wrong). But why isn't it the same in the case of Linux?
 
    