Kezdőlap › Fórumok › Programozás › C-kérdés
- This topic has 29 hozzászólás, 10 résztvevő, and was last updated 20 years, 5 months telt el by
tovis.
-
SzerzőBejegyzés
-
2005-02-06-21:24 #1989182
é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 🙂
2005-02-07-19:42 #1989183Szóval ilyet akkor rendes programba ne írjak. Hogy lehet akkor elegánsan megoldani?
2005-02-08-21:13 #1989184lenne 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…2005-02-08-21:27 #1989185A 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)2005-02-08-21:32 #1989186A 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
2005-02-12-22:27 #1989187okés, köszönöm
ezzel már nincs is gond, csak mikor a függvényen belül használom az átadott mátrixotCode: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 pointerez mit jelent pontosan?
2005-02-13-11:40 #1989188okés, köszönöm
ezzel már nincs is gond, csak mikor a függvényen belül használom az átadott mátrixotCode: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 pointerez 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]);
}2005-02-13-12:07 #1989189nos 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 ötletetennyi, ha vkinek van vmi jobb ötlete akkor ne tartsa vissza 😉
köszike2005-02-13-12:24 #1989190Ami 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.
2009-12-04-19:56 #1877415Egy buta kérdés :unsure:
Mivel Linux alatt nincs conio.h, ezért a clrscr helyett mit használok?
Köszi -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz