Compcar is a struct, which means its composed of several other types. To retrieve it from the byte array, you would need to read the proper amount of bytes and then access each element.
A way of doing it using C# would be:
_info = new CompCar[_numC];
Array.Copy(_buffer, 4, _info, 0, _numC * 28);
_numC is the number of valid CompCar structs. Array.Copy just copies the origin array starting in the specified index (4 in this case) to the start of the destination array (_info), the number of bytes _numC * 28, being 28 the size of a CompCar struct.
After doing this you have a nice array of CompCars that can be accessed individually.
Dont know if I helped or I confused you even more