Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Potrebna pomoc oko razumevanja VLA

[es] :: C/C++ programiranje :: C/C++ za početnike :: Potrebna pomoc oko razumevanja VLA

[ Pregleda: 1930 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Batleo
Beograd

Član broj: 335709
Poruke: 17
*.dynamic.isp.telekom.rs.



Profil

icon Potrebna pomoc oko razumevanja VLA24.01.2017. u 19:06 - pre 87 meseci
Danas sam se vracao na sve ono sto sam pri pocecima ucenja C-a obelezio kao nesto sto ne razumem.
Za sve sam imao resenje osim za ovaj zadatak gde se objasnjava Variable-Length Arrays.
Ostavicu kod i obeleziti sta ne razumem, pa se nadam da ce se neko javiti i pomoci.

Code:

#include <stdio.h>
#include <stdlib.h>
#define ROW 3
#define COLS 4
int sum2d(int rows, int cols, int ar[rows][cols]);

int main()
{
    int i,j;
    int rs = 3;
    int cs = 10;

    int varr[rs][cs];

    int junk[ROW][COLS]= {{2,4,6,8},{3,5,7,9},{12,10,8,6}};

    int more_junk[ROW-1][COLS+2]={{20,30,40,50,60,70},{5,6,7,8,9,10}};

    for(i=0;i<rs;i++)
        for(j=0;j<cs;j++)
        varr[i][j] = i * j+j;    /*OVAJ DEO MI NIJE JASAN, STA PREDSTAVLJA "I*J+J" */

    printf("3x5 array\n");
    printf("Sum of all elements = %d \n",sum2d(ROW,COLS,junk));

    printf("2x6 array\n");
    printf("Sum of all elemnts = %d\n",sum2d(ROW-1, COLS+2,more_junk));

    printf("3x10 VLA \n");
    printf("Sum of all elemnts = %d\n",sum2d(rs,cs,varr));  /*REZUTLAT OVE FUNKCIJE BUDE 270??? KAKO SE DOBIJA TAJ REZULTAT?*/

    return 0;
}
int sum2d(int rows, int cols, int ar[rows][cols])
{
    int r,c;
    int total =0;
    for(r=0;r<rows;r++)
        for(c=0;c<cols;c++)
        total += ar[r][c];
    return total;
}

 
Odgovor na temu

Aleksandar Đokić

Član broj: 13478
Poruke: 4793
*.net.upcbroadband.cz.



+638 Profil

icon Re: Potrebna pomoc oko razumevanja VLA24.01.2017. u 21:01 - pre 87 meseci
varr[j] = i * j+j;

Da je u tom dvodimenzionalnom nizu (matrici jel) na poziciji [j] vrednost i*j+j... ne vidim sta te buni?
 
Odgovor na temu

Batleo
Beograd

Član broj: 335709
Poruke: 17
*.dynamic.isp.telekom.rs.



Profil

icon Re: Potrebna pomoc oko razumevanja VLA24.01.2017. u 23:25 - pre 87 meseci
@Aleksandar Djokic

Ok razumem da je na poziciji varr [i)(j] vrednost i*j+j. Ali nikako da shvatim zasto je stavljena ta vrednost i *j+j , ne shvatam logiku...
Da li je ta vrednost stavljena cisto da se pokaze kako VLA moze da menja vrednosti, pa proizvoljno uzet izraz i*j+j ili ima neku semu da tako treba?
Moguce da je prosto, al ja trenutno ne kapiram...
 
Odgovor na temu

Branimir Maksimovic

Član broj: 64947
Poruke: 5534
c-bg-d-p1-76.bvcom.net.



+1064 Profil

icon Re: Potrebna pomoc oko razumevanja VLA25.01.2017. u 03:04 - pre 87 meseci
Mene vise zanima sta se zbiva sa parametrom funkcije sum2d. Da li je to kopija ili se prebacuje pointer? Sta se desava ako se ne pogode dimenzije?
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Potrebna pomoc oko razumevanja VLA

[ Pregleda: 1930 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.