2013-09-14 2 views
-1
struct box 
{ 
    char word[200][200]; 
    char meaning[200][200]; 
    int count; 
}; 

struct root { 
    box *alphabets[26]; 
}; 
struct root *stem; 
struct box *access; 
void init(){ 
    int sizeofBox = sizeof(struct box); 
    for(int i = 0 ; i<= 25; i++){ 
     struct box *temp =(struct box*)(malloc(sizeofBox)); 
     temp->count = 0; 
     root->alphabets[i] = temp; //error line 
    } 
} 

Error: Expected unqualified-id before '->' tokenожидаемый неквалифицированный идентификатор перед '->' токеном, как это исправить?

Как исправить эту ошибку. Может кто-нибудь объяснить, что это за это? ??

+0

вероятно Вы имели в виду 'stem' вместо' root', за исключением того, что 'stem' никогда не устанавливается на любое значение, так что приведет к краху во время выполнения. Возможно, измените 'struct root * stem;' на 'struct root stem' (без указателя). –

ответ

1
root->alphabets[i] = temp; 

Здесь root - это тип. Не разрешено звонить -> на тип. Чтобы использовать этот оператор, вы должны иметь указатель на экземпляр.

Я думаю, что эта линия должна быть:

stem->alphabets[i] = temp; 
// ^^^^ 

Но вы будете иметь здесь ошибку, потому что нет памяти, выделенной для него.

Так эта линия:

struct root *stem; 

должен стать

root *stem = /* ... */; // keyword "struct" is not need here in c++ 
+0

Я исправил его .... –

1

root это тип. Вы не можете вызвать оператора -> по типу. Вам нужен указатель на экземпляр (или экземпляр типа, который перегружает ->). Вам не нужно писать struct повсюду в C++ либо:

root* smth = ....; // look, no "struct" 
smth->alphabets[0] = ....; 

Обратите внимание, что это широкое использование сырых указателей в C++ код не идиоматическое. Когда вы это исправите, у вас возникнут другие проблемы.

+0

Но я тоже с этим «стеблем». Ошибка: ожидаемое первичное выражение перед токеном '->' –

+0

@KarthikSivam Можете ли вы предоставить минимальный код, который воспроизводит проблему (и не включает другие, отвлекающие ошибки?) – juanchopanza

+0

Я исправил это. Спасибо .... Я использовал структуру в формате C, это ошибка, которую я сделал. –

Смежные вопросы