You do not neceserily create an explicit C-Space representation which you sample.
You have to choose, if you want to create your path in axis space or operational space (Cartesian space). This is a design choice and has some influence on the final shape of the trajectory. I am going to assume, that you plan in operational space (Cartesian-like).
You sample the operational space. You select one pose of the TCP with 5 coordinates, e.g. $X_{TCP} = [x, y, z, a, b]$, 3 positions and 2 orientations.
You apply the inverse kinematics to find the position and orientation of the linkages of the robot which sets the TCP to this pose. This starts with finding the axis angles.
$$Q = f^{-1}(X_{TCP})$$
where $Q = [q_1, q_2, q_3, q_5, q_5]$
If you have the axis angles you can build up the transformation matrices for each linkage and position the linkages in the operational space.
The full collision check now can be done. There is no constraint on which method you use, the more accurate the method, the more accurate the results, obviously.
The results of the collision check is binary, collision or now collision. If you get a collision, you know that in the C-Space you sampled a configuration which collides. If not, you sampled a configuration, which did not collide. Essentially, you got the evaluation of the C-Space function
$$ \mathcal{c}_{X_{TCP}} = \mathcal{C}(X_{TCP})$$
As expected this way of sampling is less efficient then creating an actual C-Space function and sampling that explicit function. However, it is expected that creating the explicit function, if possible, will have a large overhead. Something in between is also possible, where the sampling can be sped up by pre-computing different elements which are often required, or caching results which are often sampled.