[c++]problem z linkerem

cfk
Użytkownik
Użytkownik
Posty: 21
Rejestracja: 29 sty 2009, o 22:28
Płeć: Mężczyzna
Podziękował: 3 razy
Pomógł: 1 raz

[c++]problem z linkerem

Post autor: cfk »

Kod: Zaznacz cały

#include <iostream>
using namespace std;

struct Tab {
    int n; // liczba elementów
    int *t; // elementy tablicy
};

Tab* NewTab(int n); // tworzenie tablicy o rozmiarze n,
                    // wypełnionej zerami
void drukuj(Tab *po); // drukowanie tablicy

int main(){
drukuj(NewTab(5));
}

Tab* Newtab(int n){
    int* t = new int[n];
    Tab* p = new Tab;
    p->n=n;
    p->t=t;
   for (*t; *t<*(t+n); *t++){
        *t=0;
        };
   
    return p;
} 

void drukuj (Tab *po){
    int n=po->n;
    int *x=po->t;
    for (*x; *x<*(x+n);*x++){
        cout<<*x<<" ";
        };
    cin.get();
}
Pisałem prosty programik który bawi się strukturą i na początku już utknołem - kompilator wywala nast. błąd
" [Linker error] undefined reference to `NewTab(int)' "
wg. mnie jest ok a programu nie moge odpalic
soku11
Użytkownik
Użytkownik
Posty: 6607
Rejestracja: 16 sty 2007, o 19:42
Płeć: Mężczyzna
Podziękował: 119 razy
Pomógł: 1823 razy

[c++]problem z linkerem

Post autor: soku11 »

Literówka:

Kod: Zaznacz cały

Tab* Newtab(int n){
a powinno być

Kod: Zaznacz cały

Tab* NewTab(int n){
Tak poza tym:
1. Wyciek pamięci w funkcji main (tworzysz nową tablicę i nową strukturę, a ich nie kasujesz).
2. W funkcjach NewTab i drukuj (swoją drogą dziwna konwencja nazywania) używasz jakichś kontrukcji, których chyba sam nie rozumiesz. Chodzi konkretnie o fragmenty z pętlą for. Wiesz w ogóle, co teraz robi twoja pętla? I czy w ogóle się zatrzyma? Czemu nie zrobisz jak człowiek, czyli:

Kod: Zaznacz cały

int* n=...;

for(int i=0;i<n;++i)
  n[i]=0;
?
3. Czemu i++, a nie ++i?
4. Main zwraca losowe wartości (brak returna).
5. Czemu nie stosujesz klas? Wszystko by się łatwiej tutaj załatwiło

Pozdrawiam.


Pozdrawiam.
ODPOWIEDZ