PHP:ssä ainakin voi suorittaa kyseisen operaation, mutta onnistuuko C:llä?
Onnistuu toki. PHP:ssä on parisenkymmentä tapaa muuttaa taulukko merkkijonoksi. Mitäköhän niistä tarkoitat?
Ongelma on sellainen, että funktion pitäisi palauttaa useita taulukon arvoja, joten ajattelin, että jos funktiossa muutettaisiin taulukko ensin merkkijonoksi ja vasta sitten palautettaisiin tämä merkkijono. Jos tuohon taulukon palautukseen löytyy muitakin keinoja, niin kerro toki.
Häh? C:ssä merkkijono on char-taulukko.
Triton kirjoitti:
funktiossa muutettaisiin taulukko ensin merkkijonoksi ja vasta sitten palautettaisiin tämä merkkijono.
C:ssä funktio ei voi palauttaa kokonaista merkkijonoa, ainoastaan osoittimen merkkijonon alkuun. Vastaavalla tavalla voisit palauttaa myös osoittimen suoraan alkuperäisen taulukon alkuun, joten muunnos merkkijonoksi palauttamista varten olisi tarpeeton. Selitätkö tarkalleen, mitä olet tekemässä? Merkkijonot, taulukot yms. toimivat C:ssä hyvin eri tavalla kuin PHP:ssä.
Funktio voi palauttaa monta arvoa niin, että funktiolle annetaan parametrina jossain toisaalla määritellyn taulukon osoite muistissa ja funktio voi tehdä siihen haluamansa muutokset, esim. täyttää sen luvuilla.
Seuraavassa esimerkissä funktio kirjoittaa taulukkoon luvut 0–n.
#include <stdio.h> // taulu[] = osoitin taulukkoon // n = taulukon alkioiden määrä void luvut(int taulu[], int n) { int i; for (i = 0; i < n; i++) { taulu[i] = i; } } int main(void) { int taulu[10]; luvut(taulu, 10); // nyt: taulu[0] = 0, taulu[1] = 1, jne. printf("%i\n", taulu[5]); return 0; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.