2017-10-14 3 views
0

シリアルポート経由でTI-Nspire Calcのチャットプログラムを作成しようとしています。だから私は、通信を行うためにndless SDKとnspireio libがインストールされ、私は、この書いたように、メッセージのinfite繰り返しがありますので、それは一種の作品:C++のテーブルによるコンパイルエラー

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

をしかし、私はそれが私にこのエラーを与えてコンパイルする場合:

[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 

私は間違っていますか?

+1

oldinput=inputを置き換えますか? – farbiondriven

+0

ヒント: 'export LANG = C LC_ALL = C'を使用して、質問のために英語であなたのメッセージを入手してください。 –

+0

これはプログラムの先頭に既に宣言されています。 – TurtleForGaming

答えて

0

あなたはoldinputを宣言する必要があります。

char oldinput[100] = {0}; 

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

これはすでにそのように宣言されている可能性があります。しかし、CまたはC++で配列を割り当てることはできません –

+0

プログラムの先頭にすでに宣言されています。 – TurtleForGaming

+0

ok、入力をコピーするためにmemcpyを追加するだけです。 –

0

oldinputもchar配列である場合は、

は変数oldinputに定義されて

strcpy(oldinput,input); 
+1

これは、NULL終了文字列を前提としています。 IOのケースはほとんどありません。 –

+0

もっと正確: memcpy(oldinput、input、sizeof(char)* 100); –

関連する問題