Vrnitev niza iz funkcije C

Vrnitev Niza Iz Funkcije C



A vrvica je zaporedje znakov, ki je sestavljeno iz enega ali več znakov in je pomembna podatkovna struktura v računalniškem programiranju. Pri delu z strune v C je treba izvesti določene operacije na vrvica tip podatkov, kot je inicializacija vrvica , dodeljevanje vsebine, veriženje strune , primerjava strune , in vračanje vrvica .

Ta članek se osredotoča na eno takšno operacijo v vrvica podatkovno strukturo, ki vrača a vrvica iz funkcije C.







Vrnitev niza iz funkcije C

Kot vrvica je niz znakov in za vrnitev niza iz funkcije C je treba kazalec na podatkovno strukturo niza posredovati kot argument iz klicne funkcije klicani funkciji kot parameter. Kazalec lahko nato uporabite za kazanje na niz znakov. Ko kazalec pokaže na niz znakov, se vrvica vrednost je mogoče vrniti iz klicane funkcije z uporabo stavka return.



Za boljše razumevanje si lahko ogledate spodnji primer.



#include

const char * moje ime ( ) {
vrnitev 'Janez' ;
}

int main ( praznina ) {
printf ( '%s' , moje ime ( ) ) ;
}





V zgornji kodi smo namesto deklaracije spremenljivke, kot to počnemo običajno, z njo uporabili kazalec, tako da ko vrnemo ta niz, ne pride do napake.

Izhod




Funkcija C ne more vrniti a vrvica ki je bila podana kot lokalna spremenljivka, saj bo spremenljivka takoj odstranjena (sproščena), ko se funkcija konča z izvajanjem, zaradi česar ni na voljo in sproži opozorilo, kot je prikazano spodaj:

#include

const char mojeIme ( ) {
char ime = 'Janez' ;
vrnitev ime;
}

int main ( praznina ) {
printf ( '%s' , moje ime ( ) ) ;
}

V tej kodi je a Opozorilo se sproži, ko se vrne niz brez kakršen koli kazalec.

Izhod


Torej lahko kodo napišete na naslednji način:

#include

const char * moje ime ( ) {
char * ime = 'Janez' ;
vrnitev ime;
}
int main ( praznina ) {
printf ( '%s' , moje ime ( ) ) ;
}

Izhod


Spremenljivke so privzeto dodeljene na sklad, kar je dejanski razlog za zgornjo izjavo. Ko pa je kazalec deklariran, se vrednost, na katero kaže, dodeli kopici, ki se po končani funkciji ne počisti. Ko je pomnilnik dodeljen, se kopija datoteke vrvica je treba ustvariti iz izvirne pomnilniške lokacije, na katero kaže kazalec, in kopijo je treba vrniti iz klicane funkcije. Klicajoča funkcija bo imela nato nadzor nad izvirnimi podatki niza, medtem ko je klicana funkcija odgovorna za sprostitev dodeljenega prostora.

Zaključek

Funkcija C lahko sprejme kazalec na vrvica kot argument in vrne vrvica vrednost kot rezultat operacij, izvedenih znotraj klicane funkcije. Pristop za dosego tega je uporaba kazalca char*. Klicna funkcija bo odgovorna za pomnilnik, dodeljen za shranjevanje vrvica , medtem ko je klicana funkcija odgovorna za sprostitev dodeljenega prostora.