gpt4 book ai didi

c - 使用 strncat 进行字符串连接会导致符号错误

转载 作者:行者123 更新时间:2023-11-30 14:30:28 25 4
gpt4 key购买 nike

更新:关于 char、signed char 还是 unsigned 的问题最终没有意义。在这种情况下使用 memcpy 更合适,因为它对字节不加区别地工作。

不可能是一个更简单的操作,但我似乎错过了一个关键步骤。在下面的代码中,我尝试用 buffer 填充 bufferdata,编译器会警告我符号性存在差异。

unsigned char  buffer[4096] = {0};
char *bufferdata;

bufferdata = (char*)malloc(4096 * sizeof(bufferdata));

if (! bufferdata)
return false;

while( ... )
{
// nextBlock( voidp _buffer, unsigned _length );
read=nextBlock( buffer, 4096);

if( read > 0 )
{

bufferdata = strncat(bufferdata, buffer, read); // (help)
// leads to: pointer targets in passing argument 2 of strncat differ in signedness.

if(read == 4096) {

// let's go for another chunk
bufferdata = (char*)realloc(bufferdata, ( strlen(bufferdata) + (4096 * sizeof(bufferdata)) ) );
if (! bufferdata) {
printf("failed to realloc\n");
return false;
}

}

}
else if( read<0 )
{
printf("error.\n");
break;
}
else {
printf("done.\n");
break;
}
}

最佳答案

显然在你的编译器中charsigned char,因此出现警告消息。

关于c - 使用 strncat 进行字符串连接会导致符号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3155904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com