2017-10-14 3 views
0

J'essaie de créer un programme de discussion pour le TI-Nspire Calc via le port série. Donc, j'ai installé le SDK ndless et nspireio lib pour rendre la communication et genre de travaux parce qu'il ya une répétition infite du message si je l'ai écrit ceci:Erreur de compilation due à une table en C++

if(uart_ready()) { 
    char input[100] = {0}; 
    uart_getsn(input,100); 
    if(oldinput != input) { 
      nio_puts(input); 
      oldinput = input; 
    } 
} 

Mais quand je compile cela me donne cette erreur:

[email protected]:~/TINSPIRE/Ndless/ndless-sdk/samples/uart# make 
nspire-g++ -Wall -W -marm -Os -c hello.cpp 
hello.cpp: Dans la fonction « int main() »: 
hello.cpp:61:14: error: affectation de tableau invalide 
    oldinput = input; 
       ^~~~~ 
Makefile:33 : la recette pour la cible « hello.o » a échouée 
make: *** [hello.o] Erreur 1 

Qu'est-ce que je fais mal?

+1

où est définie la variable oldinput? – farbiondriven

+0

Indice: utilisez 'export LANG = C LC_ALL = C' pour obtenir vos messages en anglais pour la question –

+0

Il est déjà déclaré en haut du programme – TurtleForGaming

Répondre

0

Vous annonciez oldinput:

char oldinput[100] = {0}; 

memcpy(oldinput, input, sizeof(char) * 100); 
+0

Il est probablement déjà déclaré de cette façon. Cependant, vous ne pouvez pas affecter de tableaux en C ou C++ –

+0

Il est déjà déclaré en haut du programme – TurtleForGaming

+0

ok, il suffit d'ajouter memcpy pour copier les entrées. –

0

Si oldinput est également un tableau de caractères,

avec oldinput=input remplacer

strcpy(oldinput,input); 
+1

Cela suppose des chaînes terminées NULL. C'est rarement le cas pour IO. –

+0

Plus correct: memcpy (oldinput, entrée, sizeof (char) * 100); –