2010-05-06 6 views
0

OK, j'ai un problème étrange. J'ai ce morceau de code:Problème avec les pointeurs

int *p; 
int test; 
p=&test; 

Dans Visual C++ exprimer, dans mon projet exsisting, je reçois cette erreur:

missing type specifier - int assumed. 
'p' : 'int' differs in levels of indirection from 'char *' 
'initializing' : cannot convert from 'char *' to 'int' 

Mais quand je crée nouveau projet, même code est très bien. Quel est le problème s'il vous plaît?

+7

L'erreur n'a rien à voir avec le code que vous avez présenté ici. – AraK

+2

Afficher le code compilable réel - il est probable qu'il y ait quelque chose d'autre dans le projet qui cause le problème – Mark

+2

Ce morceau de code est incomplet; pouvez-vous utiliser l'ensemble du programme pour obtenir plus de contexte? –

Répondre

1

Si le même code sur différents projets produit des résultats différents, je suppose que vous pouvez supposer que le problème n'est pas avec le code, mais avec le projet.

Je vous suggère de faire un diff entre les deux fichiers du projet pour avoir un aperçu rapide de ce qui pourrait être faux.

1

Avez-vous placé ce code dans une fonction? Vous ne pouvez pas écrire du code C++ arbitraire en dehors des fonctions.

int main() { 
    int *p; 
    int test; 
    p=&test; 
} 
2

Quelque chose précédant ce code peut être briser des choses (plus de contexte pourrait aider). Peut-être test est une macro qui fait des ravages avec la signification de votre code.

Questions connexes