Új hozzászólás Aktív témák

  • Karma
    félisten

    Mi lehet a hiba? Miért nem tudok négy dimenziós tömböt deklarálni?

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

    int main()
    {
    int t[100][100][100][100], i, j, k, l;
    int bentvan=1, tanar, tantargy, hetnapja, ora;
    printf("Succesfull declaration\n");
    for(i=0;i<100;i++){
    for(j=0;j<100;j++){
    for(k=0;k<100;k++){
    for(l=0;l<100;l++){
    t[i][j][k][l]=0;
    }
    }
    }
    }
    do{
    printf("Add meg a tanart");
    scanf("%d", &tanar);
    printf("Add meg a tantargyat");
    scanf("%d", &tantargy);
    printf("Add meg, hogy a het melyik napjan");
    scanf("%d", &hetnapja);
    printf("Add meg, hogy hanyadik ora");
    scanf("%d", &ora);
    if(tanar==0){
    bentvan=0;
    }else{
    t[tanar][tantargy][hetnapja][ora]=1;
    }
    }while(bentvan);
    return 0;
    }

    Hibakeresésnél legközelebb másold ide a pontos hibaüzenetet, és hogy fordításkor vagy futáskor történt a hiba.

    Egyébként szerintem az a baj, hogy egy 100^4 elemű inttömb bő 400 MB memória lenne, amit stacken nem lehet elhelyezni...

    Ha ekkora memóriaterület kell, nem úszod meg a heap használatát (malloc/free), de sokkal célravezetőbb, ha újragondolod a feladatod. Több mint valószínű, hogy nincs szükséged az egész tömbre a memóriában.

Új hozzászólás Aktív témák