Semina - Execution killed with signal 11 (could be triggered by violating memory limits)

Tutti i testcase terminano con l’errore in oggetto (la memoria che utilizzo è 128 KiB contro i 256 MiB disponibili)

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

short campo[201][201];
int semine;

void fill(int pr, int pc, int fr, int fc)
{
    int i, j;
    for(i=pr; i<fr; i++)
        for(j=pc; j<fc; j++)
            campo[i][j]++;
}

void trovaMax()
{
    int i,j;
    short max=0;
    
    for(i=0; i<201; i++)
        for(j=0; j<201; j++)
            if(campo[i][j]>max)
                max=campo[i][j];
    printf("%hi", max);
}

main()
{
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
    
    scanf("%d", &semine);
    
    int i,j;
    int fr, fc, pr, pc;
    
    for(i=0; i<201; i++)
        for(j=0; j<201; j++)
            campo[i][j]=0;
    
    for(i=0; i<semine; i++)
    {
        scanf("%d%d%d%d", pr, pc, fr, fc);
        fill(pr+100,pc+100, fr+100,  fc+100);
    }
    
    trovaMax();
}

Grazie

Stai passando alla scanf i valori delle quattro variabili e non i loro indirizzi (come hai fatto per leggere semine con &) e quindi il tuo programma esegue accessi invalidi alla memoria e crasha. Correggendo con

    scanf("%d%d%d%d", &pr, &pc, &fr, &fc);

dovresti risolvere.

2 Mi Piace

Hai ragione, grazie.
Che errore stupido…