最後の有効な文字を NUL として配置する必要があり'\0'
ます。
char配列がありますchar cursStr[128];
私の意図は次のとおりです。cursStr [lastCharacter where ends] = '\0'
以下は、この配列に値が入力される方法のコード スニペットです。
snprintf(num_range, sizeof(num_range), "%d-%d", devIndex, devIndex+127);
snprintf(dev_range, sizeof(dev_range), "%s%d...%s%d", devices[devPointer].name, 1, devices[devPointer].name, 128);
sprintf(cursStr, "%-7s %-25.50s %c%-30.30s %5Ld%11s\n",
num_range, dev_range,' ', "Empty", (var64)0, "GPT");
私がこれを行っている理由は、GUI で印刷することにより、最後にジャンク文字が表示されるためです。ただし、コンソールでの印刷は問題なく印刷されます。この配列に対して 0を実行しようとしましたが、memset
役に立ちません。
これは、GUI とコンソールに出力される方法です。
if (cursLine) {
TVdisplayText(cursLine, cursStr, &usedLines); // GUI
cursLine += usedLines;
} else {
printf("%s\n",cursStr); // console
}
使用する GUI ライブラリは TVision (Turbo Vision) です。