私はこのような機能を持っています:
uint8_t getULEB128Value(uint8_t *p, uint32_t *to){
unsigned int result;
uint8_t count = 1;
uint8_t cur;
result = *p;
if(result > 0x7F){
count++;
cur = *(++p);
result = (result & 0x7F) | (cur << 7);
if(cur > 0x7F){
count++;
cur = *(++p);
result |= ((cur & 0x7F) << 14);
if(cur > 0x7F){
count++;
cur = *(++p);
result |= ((cur & 0x7F) << 21);
if(cur > 0x7F){
count++;
cur = *(++p);
result |= ((cur & 0x7F) << 28);
}
}
}
}
*to = result;
return count;
}
今、私は長さを知りたいだけで、値にはあまり興味がありません...
ドントケアポインタを持つことは可能ですか?そこに書かれているすべての値はニルヴァーナに行きますか?/ dev / nullのように?
もちろん、どこかにポインタを作成して後で解放することもできますが、そのための何かがすでにあるのでしょうか。