경우에 따라 다음과 같은 코드가 작동합니다. 이는 좋은 개념이지만 실행이 좋지 않음을 의미합니다. 비트가 떨어지는 위치에 따라 충돌이 발생하기 때문에 나는 그 길을 따라 한 발을 들추고 있음을 의미합니다. 나는 bufferdata
을 < =에서 4096 바이트로 채우는 우아한 방법을 찾는데 관심이 있지만, 그렇지 않습니다.memcpy를 사용하여 바이트 블록에서 바이트를 연결하는 데 오류가 발생했습니다.
편집 : 수신 오류가 bufferdata
unsigned char buffer[4096] = {0};
char *bufferdata;
bufferdata = (char*)malloc(4096 * sizeof(*bufferdata));
if (! bufferdata)
return false;
while(...)
{
// int nextBlock(voidp _buffer, unsigned _length);
read=nextBlock(buffer, 4096);
if(read > 0)
{
memcpy(bufferdata+bufferdatawrite,buffer,read);
if(read == 4096) {
// let's go for another chunk
bufferdata = (char*)realloc(bufferdata, (bufferdatawrite + (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;
}
}
free(bufferdata);
어떻게/실패합니까? bufferdatawrite는 어디에서 왔습니까? 그게 증가해야합니다 ... –