Zracanie tablicy dynamicznej

0

Mam taki kod:

#include <iostream>

int *Funkcja()
{
int *array_codes = new int [64];
/*
Działanie na tablicy
*/
return array_codes;
}

int main()
{
 int *tablica = new int [64];
 tablica = Funkcja();
 cout << tablica;

 return 1;
}

Problem polega na tym, że jeśli tablica array_codes ma wartość 123456
to tablica tablica ma inną (np) 30A5D itd.

0

Trochę nie rozumiem, co Ty tutaj rzeźbisz.. Poza tym nie sądzisz, że w main wystarczy wskaźnik? Alokujesz pamięć i zapominasz, że trzeba ją kiedyś zwolnić..

#include <iostream>
int* Funkcja(){
    int* array_codes=new int[64];
    for(int i=0;i<64;i++)
        array_codes[i]=i;
    return array_codes;
}
int main(){
    int* tablica;
    tablica=Funkcja();
    for(int i=0;i<64;i++)
        std::cout<<tablica[i]<<"\n";
    delete[]tablica;
    return 0;
}

a robiąc tak:

cout << tablica;

Wypisujesz adres początku tablicy, a nie tablice..

0

Problem polega na tym, że jeśli tablica array_codes ma wartość 123456

lol, na tym polega dynamiczna alokacja danych w pamięci.
Poza tym to nie jest "wartość", a wskaźnik.

0

i (umownie oczywiście) o poprawnym zakończeniu programu informuje "return 0" - wszystkie inne wartości to jakieśtam błędy.

0

Wiem, że wskaźnik no i ja chce wydobyć z niego wartość.
Odnośnie return 0 to nie istotne ale zabawne :) .

0

Jaką niby wartość? Ten wskaźnik wskazuje na początek tablicy, a odwołujesz się do niego - w tym przypadku, bo jest to tablica - poprzez operator [].

1 użytkowników online, w tym zalogowanych: 0, gości: 1