C-kérdés

Kezdőlap Fórumok Programozás C-kérdés

10 bejegyzés megtekintése - 21-30 / 30
  • Szerző
    Bejegyzés
  • #1989182
    emperor
    Felhasználó

      én azt mondanám, hogy írd, úgy a kódod, hogy ez ne történhessen meg, de biztos van másik, elegánsabb megoldás is 🙂

      #1989183
      kelemengabor
      Felhasználó

        Szóval ilyet akkor rendes programba ne írjak. Hogy lehet akkor elegánsan megoldani?

        #1989184
        emperor
        Felhasználó

          lenne egy alap kérdésem
          hogy adok át mátrixot paraméterként egy függvénynek s hogy hívom meg azt?

          vmi ilyesmivel próbálkoztam:

          Code:
          void kiir(int **matrix){
             ….
          }

          és így hívtam meg:

          Code:
          kiir(matrix);

          fordításnál figyelmeztet: warning: passing arg 1 of `kiir’ from incompatible pointer type
          a hívásnál
          futtatás közben pedig, szegmens hiba…

          #1989185
          kelemengabor
          Felhasználó

            A mátrix az ugye egy kétdimenziós tömb most itt ugye? Akkor annak elég egy * is, ha jól emlékszem.
            szerk: picit utánanéztem, tehát a definícióban és a hívásban is u. annyi * legyen (konyhanyelven)

            #1989186
            emperor
            Felhasználó

              A mátrix az ugye egy kétdimenziós tömb most itt ugye? Akkor annak elég egy * is, ha jól emlékszem.
              [align=right][snapback]117244[/snapback][/align]

              igen kétdimenziós, egy csillagra ezt kapom a fordítás során: error: subscripted value is neither array nor pointer

              #1989187
              emperor
              Felhasználó

                okés, köszönöm
                ezzel már nincs is gond, csak mikor a függvényen belül használom az átadott mátrixot

                Code:
                void kiir(char *matrix){
                 for(i=0;i<24;i++)
                  for(j=0;j<80;j++)
                   mvprintw(i,j,"%c", matrix[i][j]);
                }

                akkor ilyesmit kapok:
                error: subscripted value is neither array nor pointer

                ez mit jelent pontosan?

                #1989188
                tovis
                Felhasználó

                  okés, köszönöm
                  ezzel már nincs is gond, csak mikor a függvényen belül használom az átadott mátrixot

                  Code:
                  void kiir(char *matrix){
                   for(i=0;i<24;i++)
                    for(j=0;j<80;j++)
                     mvprintw(i,j,"%c", matrix[i][j]);
                  }

                  akkor ilyesmit kapok:
                  error: subscripted value is neither array nor pointer

                  ez mit jelent pontosan?
                  [align=right][snapback]117763[/snapback][/align]

                  Pontosságot nem igérek de azt jelenti hogy az indexelt „objektum” sem nem tömb sem nem mutató.
                  A mátrixokat mindíg nagyon utálom, különösen az indexelt formákat, jobb szeretem a mutatókat és a struktúrát, még ha az elemei egy sima tömb is, de talán így lehet megoldani:

                  Code:
                  void kiir(char *matrix[])
                  {
                   for(i=0;i<24;i++)
                    for(j=0;j<80;j++)
                     mvprintw(i,j,"%c", matrix[i][j]);
                  }
                  #1989189
                  emperor
                  Felhasználó

                    nos hát nem is tudom… 🙂 úgy mûködik, hogy mutatóként definiálom a mátrixot is… nem gáz ez??
                    így nem tudok a fõprogramban közvetlenül hivatkozni rá, pl: matrix[j] = ‘q’;
                    tulképp ez nem feltétlen nagy gond
                    asszem azt fogom csinálni, hogy deklarálok egy 80 elemû tömböt aminek az elemei struktúrák (vagy rekordok, nemtom hogy nevezzem õket) így fiszont csak az elsõ 24 elemet használnám ki 100%-ig a maradék 56 fele pazarlás lenne? ez nem túl hatékony, így lehet el is vetem ezt az ötletet

                    ennyi, ha vkinek van vmi jobb ötlete akkor ne tartsa vissza 😉
                    köszike

                    #1989190
                    tovis
                    Felhasználó

                      Ami nekem ebbõl a tanulság hogy a C nem szereti a mátrixokat, nehézkes, veszélyes (tól indexelsz) stb. Viszont ha struktúraként definiálsz, erre már egy tipizált mutatóval (typedef) hivatkozhatsz ahol kell és ott megadhatod a mátrixod dimenzióit – már ha érdemes hiszen ez így FIX a mátrix nem nõhet csak keveyseb elemet használhatsz ki – azaz pazarolsz.

                      #1877415
                      csaba
                      Felhasználó

                        Egy buta kérdés :unsure:
                        Mivel Linux alatt nincs conio.h, ezért a clrscr helyett mit használok?
                        Köszi

                      10 bejegyzés megtekintése - 21-30 / 30
                      • Be kell jelentkezni a hozzászóláshoz.