有時,下面的代碼有效,這可能意味着很好的概念,但執行效果很差。由於這種崩潰取決於比特位置的下降,這意味着我正在逐步屠殺一步。我有興趣找到一個優雅的方式來填充bufferdata
與< = 4096字節buffer
,但毫無疑問,這不是它。錯誤使用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從哪裏來?這需要增加... – 2010-07-01 17:17:11