バグというよりちょっとした不快感がありますが、なぜそれが発生しているのかわかりません。次のように宣言された配列インデックスと 2D gchar 配列があります。
gchar FilterArray[10][51];
static uint8_t ArrayIndex = 0;
static gchar ScanLine[9640];
さて、初めて Array Index を使用すると、どういうわけか値が 115 になります。使用する前に、コードのどこにも設定しませんでした。strcpy コマンドで使用した後にのみ出力すると、その値は 115 になります。strcpy コマンドの前に出力すると、プログラムの実行中は正しい値になります。
while(FilterAmount != 0)
{
g_io_channel_read_chars (source,(gchar *) ScanLine,1,&BytesRead,&GlibError);
if(ScanLine[0] == FilterTerminator[0]) {
printf("Array Index: %i\n", ArrayIndex);
if(strlen(FilterName) > 0){
printf("Array Index: %i\n", ArrayIndex); //if I only print before, value is correct
strcpy(FilterArray[ArrayIndex],FilterName);
printf("Array Index: %i\n", ArrayIndex); //if I only print after, value is incorrect
ArrayIndex++;
FilterAmount--;
FilterName[0] = '\0';
}
}
else {
strcat(FilterName, ScanLine);
}
}