バッファ(char *)を読み取っていて、カーソルがあり、バッファの開始位置を追跡しています。バッファから7〜64文字をコピーする方法がありますか、ループするのが最善の策です。位置xから位置yへのバッファ?
宛先バッファーのサイズは、動的に計算された別の関数の結果です
これを初期化すると
variable-sized object 'version' may not be initialized
関連するコード部分:
int32_t size = this->getObjectSizeForMarker(cursor, length, buffer);
cursor = cursor + 8; //advance cursor past marker and size
char version[size] = this->getObjectForSizeAndCursor(size, cursor, buffer);
-
char* FileReader::getObjectForSizeAndCursor(int32_t size, int cursor, char *buffer) {
char destination[size];
memcpy(destination, buffer + cursor, size);
}
-
int32_t FileReader::getObjectSizeForMarker(int cursor, int eof, char * buffer) {
//skip the marker and read next 4 byes
cursor = cursor + 4; //skip marker and read 4
unsigned char *ptr = (unsigned char *)buffer + cursor;
int32_t objSize = (ptr[0] << 24) | (ptr[1] << 16) | (ptr[2] << 8) | ptr[3];
return objSize;
}