ユーザーからの入力を文字列の配列に格納する必要があります。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
char *history[10] = {0};
int main (void) {
char input[256];
input = "input";
strcpy(history[0], input);
return (EXIT_SUCCESS);
}
ターミナルで実行すると、セグメンテーション違反が発生し、NetBeansではmain.c:11:エラー:割り当てに互換性のないタイプが発生します。また、すべての履歴をシフトして、最新の入力を最初の位置(history [0])に格納しようとしました。
history[9] = history[8];
history[8] = history[7];
history[7] = history[6];
history[6] = history[5];
history[5] = history[4];
history[4] = history[3];
history[3] = history[2];
history[2] = history[1];
history[1] = history[0];
history[0] = input;
しかし、これはこのような出力を引き起こします。
入力が「入力」の場合
履歴0:入力履歴1:nullなど。
その場合、入力は「新規」です
履歴0:新しい履歴1:新しい履歴2:nullなど。
新しい入力が入力されるたびに、文字列シフトへのポインタが移動しますが、これにより、最新の値のみが履歴配列に保存されます。