Miten viedä:
void main()
{
char *abc[]; //tämä
functio(*abc[]);
return;
}
void functio(*abc[])
{
//tänne
}
Esimerkin kaltainen ei toimi.
Siis miten viedä epäsuoruusoperaattori funktiolle?
void main()
{
char *abc[]; //tämä
functio(*abc[]);
return;
}
void functio(*abc[])
{
//tänne
}
Esimerkin kaltainen ei toimi.
Siis miten viedä epäsuoruusoperaattori funktiolle?
Vastaukset 10
Vanhimmat
En ole varma, mutta pitäisikö tuo abc esitellä koodin alussa eikä main-funktiossa.
ehkä en vaan osaa, mutta ei nyt selviä että mitä yrität tehdä? vissiin siis luoda char-tyypin pointteria? ensinnäkin tuo functio:n määrittely on pielessä, sen kuuluisi mennä näin: void functio(char *abc) ja en tiedä että onko noilla [] mitään merkitystä tässä tilanteessa. ja minkä takia kutsut funktiota tyhjällä char-pointterilla?
char* abc[] :n tehtävänä lienee olla pointteritaulukko (vrt. vaikka main funktion argumentit int argc, char* argv[argc 1]), eli taulukollinen merkkijonoja, tämähän olisi kai yhtäpitävä char** abc:n kanssa, jos ajatellaan merkkijonojen järjestäytymistä muistiin.
Funktioon sisään moinen menee ihan kuin main -funktiossakin eli vaikka void funktio(char** abc). Jos olen väärässä, niin joku voi korjata :)
No en tiedä onko tämä selkeämpi, mutta
Kyse on http requestin käsittelystä.
tätä siis yritän tehdä:
int main(int argc, char *argv[])
{
BOOL posti=olikopostia(argc, *argv[]);
// Ylläoleva lause antaa virheen
// expected primary-expression before ']' token
if (posti=TRUE)
{
//käsitellään posti
}
return 0;
}
funktio:
BOOL olikopostia(int argc, char *argv[])
{
//tutkitaan argc ja *argv[] täällä
return vastaus; //kyllä tai ei
}
void function(int argc, char *argv[])
{
}
int main(int argc, char *argv[])
{
function(argc, argv);
}
Näin se menee. kiitos
Ei tämä sittenkään toimi. toi array ei mene perille asti samanlaisena.
Virheilmoitus tulee virheellisestä kutsusta. Kun sinulla on:
BOOL posti=olikopostia(argc, *argv[]);
niin pitäisi olla
BOOL posti=olikopostia(argc, argv);
ja funktio olikopostia pitää olla määritelty
BOOL olikopostia(int, char**).
Oletko varma, että saat edes mainiin tavarat "samanlaisena"? Mitä tarkemmin yrität tehdä?
Kiitos neuvoista. Kyllä tuo edelläoleva toimii ok.
Aloittelevalle sattuu ja tapahtuu, pari typoa ja mikään ei toimi.
void function(char *abc[])
{
}
int main(int argc, char **argv)
{
char *abc[10];
function(abc);
}