Najwyraźniej Twoja przeglądarka ma problemy z obsługą podstawowych znaczników CSS3. Możliwe, że z tego powodu coś może wyglądać beznadziejnie ;-)

PS. Czas zmienić przeglądarkę na coś bliższego nowym standardom.

Kategorie
02 października 2006

Czy ktos wie czy funkcja w cpp moze zwracac tablice? Jesli tak to podajce przyklad :]

Komentarze

# rzyjontko

W C zwykle się zwraca wskaźnik do pierwszego elementu tablicy.

# radmen

no a jesli ta tablica istnieje tylko wewnatrz funkcji i wlasnie ja chce zwrocic?

# rzyjontko

Tego zrobić nie możesz. Ale jeśli funkcja nie odwołuje się rekurencyjnie do siebie, to możesz zrobić tak (zakładając, że interesuje Cię tablica intów):

int *get_array(void)
{
static int array[100];
return array;
}

Dzięki temu, że tablica jest statyczna, możesz zwrócić jej adres, ponieważ nie zostanie ona zdjęta ze stosu. Można również zaalokować odpowiednią ilość miejsca w ten sposób:

int *get_array(void)
{
int *array = malloc(100 * sizeof(int));
return array;
}

Z tym, że zaalokowaną pamięć elegancko jest zwolnić po zakończeniu używania. Statyczna tablica będzie istniała przez cały czas wykonania programu.

# radmen

hmm zaraz sprawdze, thx :)

# rzyjontko

To oczywiście tylko przykłady. Normalnie należy sprawdzić, czy malloc nie zwrócił NULLa i takie tam inne. Polecam zaopatrzenie się w http://www.wnt.pl/product.php?action=0&prod_id=481&hot=1 ewentualnie http://www.wnt.pl/product.php?action=0&prod_id=105&hot=1.

# radmen

heh ja mam Symfonie, ale najwyrazniej przez dlugi czas nie kodzenia cos mi sie wywialo..
THX anyway :)

# radmen

hmm wszystko byloby fajnie pieknie, ale teraz mam problem bo nie moge w ten sposob zwrocic tablicy wielowymiarowej...

# rzyjontko

W C (jak również w C++) nie ma tablic wielowymiarowych. Są tylko tablice tablic.

int **get_array(void)
{
static int array[100][100];
return array;
}

Disclaimer

Jakkolwiek jestem właścicielem tego bloga, nie ponoszę odpowiedzialności za kometarze napisane przez innych obywateli tego wolnego kraju.

Zastrzegam sobie prawo do kasowania/modyfikowania komentarzy (jeśli uznam to za stosowne).

Zostaw komentarz

code