Ubuntu 8.04(gccバージョン4.2.4)で動作するプログラムを10.04(gccバージョン4.4.3)に移植しています。私は次のコードを持っています:
#include <stdio.h>
#include <string.h>
int main(void) {
char p[100] = "////abcd";
char *t;
/* Remove duplicate slashes, saving only one of them */
while (t = strstr(p, "//"))
strcpy(t, t + 1);
printf("%s\n", p);
return 0;
}
/abcd
結果は、gcc4.2.4の場合となるはずです。4.4.3では、出力は/accd
です。
両方のバージョンのgccを使用して正しい出力を提供するコード変更を提案していただけますか。できれば、ここで何が起こっているのかを説明してください。
前もって感謝します!