|
藍森林 http://www.lslnet.com 2006年6月6日 10:18
奇怪的問題
我這段程序居然報錯
"ftptest.c", line 157.29: 1506-068 (W) Operation between types "unsigned char*"
and "int" is not allowed.
但我的cp1的定義是
char* cp1;
[code/]
if( *cp == '[' ) {
cp1 = strstr( cp + 1, ']' );//157
if ( cp1 ) {
*cp1 = 0;
Trim( ++cp );
if( strcmp( cpSection, cp ) == 0 )
iFoundSec = 1;
continue;
}
} |
奇怪的問題
157應該是cp1 = strstr(cp + 1, "]"); |
奇怪的問題
我試了,但不行
if( *cp == '[' ) {
cp1 = strstr( cp + 1, "]" );
if ( cp1 ) {
*cp1 = 0;
Trim( ++cp );
if( strcmp( cpSection, cp ) == 0 )
iFoundSec = 1;
continue;
}
} |
奇怪的問題
或者用strchr |
奇怪的問題
你的if( *cp == '[' ) 有問題吧。cp是字符串指針吧? |
奇怪的問題
cp 是哪一種資料型態 , 假使是 char *cp的話
cp1 = strstr( cp + 1, "]" ); 改成 cp1 = strstr( *(cp + 1), "]" ); |
奇怪的問題
-->
:shock: :shock: :shock:
怎麼能是這個啊,*(cp +1)是個字符啊。 |
奇怪的問題
sorry 弄錯了 |
奇怪的問題
-->
還是同樣的錯誤?
不會吧! |
奇怪的問題
應該是改成cp1 = strstr( cp + 1, "]" );
你在157行上面加一行cp ++
157行改成cp1 = strstr( cp, "]" ); 試試 |
奇怪的問題
各位:
我發現不是程序的問題,而是平台的問題
我把程序拿到hp-unix下編譯,通過但在aix下去不行 |
奇怪的問題
[code/]
if( *cp == '[' ) { //用法錯誤因為*cp是一個串永遠不等於
cp1 = strstr( cp + 1, ']' );//157 strstr用法錯char *strstr( const char *string, const char *strCharSet );
if ( cp1 ) {
*cp1 = 0; //一樣是指針用法錯
Trim( ++cp );
if( strcmp( cpSection, cp ) == 0 )
iFoundSec = 1;
continue;
}
}
樓主的C語言指針部分要加強
不然程序會BUG很多 |
奇怪的問題
*cp是一個串?
不是吧 |
奇怪的問題
無雙的第一個說法錯誤
下面兩個正確。 |
奇怪的問題
是的
我的第一個回復錯誤
謝謝bombbaby 提醒 |
| |