1
下面的代碼與EXC_BAD_ACCESS一起崩潰。任何人有任何線索爲什麼?從int分配給'char *'的指針轉換不兼容整數
下面的警告報道:
不兼容的整數指針轉換分配給從 '詮釋' 字符*'
register int t;
char *s;
double val;
s = printn(val);
t = strlen(s); // <<< breaks on this line
...
char *printn(n)
double n;
{
register char *fmt, *s, *ss;
double absn;
short sign;
....
s = printb("%-0.2f", sign*absn);
for (ss = s; *ss; ++ss);
while (*--ss == '0' || *ss == ' ') *ss = 0;
if (*ss == '.') *ss = 0;
return(s);
}
謝謝。
'register'? K&R式函數定義?又是1982年嗎? – melpomene
關閉!這段代碼實際上是從1983年開始的 – efnx
啊,在1983年,'sizeof(char *)== sizeof(int)'有一個很好的機會。在這種情況下,代碼的工作機會不會太差。 –