2014-01-05 742 views
-1

我有下面的代碼有問題:錯誤無效的轉換(-fpermissive)C++

void dodaj(BST * T) 
{ 
    T->iloscwezlow(); 

    int i,n; 

    wezelbst * x; 

    cin >> n; 
    for(i = 0; i < n; i++) 
    { 
     x=static_cast<int>(rand()%10); 
     T->wstaw(x);  
    } 

    cout << endl; 
    T->walk(T->korzen); 
    T->iloscwezlow();  
} 

這裏是我的問題:

In function 'void dodaj(BST*)': 
[Error] invalid conversion from 'int' to 'wezelbst*' [-fpermissive] 
+0

歡迎來到SO,你應該用英語發佈代碼。 –

+0

@StephaneRolland錯誤的行是英文。你應該問問'wezelbst'是如何定義的。 – Njol

+1

@Njol確定錯誤的行是x = static_cast (rand()%10);.但是,在SO上發佈的代碼應該是英文的。 –

回答

2

你寫:

x=static_cast<int>(rand()%10); 

那裏你嘗試分配給xa整數值。

但是您的X定義爲指針:

wezelbst * x; 

你期望發生的?指向wezelbst和integer的指針不相關,編譯器無法知道你想要做什麼。

有一點建議(良好做法),你應該在聲明它們時初始化你的變量。

int i = 0; 
int n = 0; 
wezelbst * x = nullptr; 
相關問題