老年人外套 女装:c++问题 msdn上的例子为什么错误?

来源:百度文库 编辑:高校问答 时间:2024/04/28 22:22:41
这是一个msdn上关于_lsearch函数的例子:

// crt_lsearch.c

#include <search.h>
#include <string.h>
#include <stdio.h>

int compare( const void *arg1, const void *arg2 );

int main(void)
{
char * wordlist[4] = { "hello", "thanks", "bye" };
// leave room to grow...
int n = 3;
char **result;
char *key = "extra";
int i;

printf( "wordlist before _lsearch:" );
for( i=0; i<n; ++i ) printf( " %s", wordlist[i] );
printf( "\n" );

result = (char **)_lsearch( &key, wordlist,
&n, sizeof(char *), compare );

printf( "wordlist after _lsearch:" );
for( i=0; i<n; ++i ) printf( " %s", wordlist[i] );
printf( "\n" );
}

int compare(const void *arg1, const void *arg2 )
{
return( _stricmp( * (char**)arg1, * (char**)arg2 ) );
}

我在Visual Studio .NET 2003上调试.发生了错误.
结果为:
error C2664: “_lsearch” : 不能将参数 3 从“int *__w64 ”转换为“unsigned int *”
与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换

请高人指点指点.