Assigning an empty array row to reference
If you're using a pointer then there's no limit to what that pointer can point to.

The way I see it you have two sensible choices:


Point to a default value


This doesn't have to be in your array. It can be anything that is an int[3], since that is what your array consists of.

int[3] nothing = {0, 0, 0};

EXCLUSIVE_COLOR = nothing;


This means that it's actually pointing to something valid, in this case it's actually (I assume) the colour black.  That can make it easy to deal with, since EXCLUSIVE_COLOR[0] will be a valid value.


Point to nothing


You can point your pointer to NULL and it will be pointing to "nothing". This means that EXCLUSIVE_COLOR[0] is no longer valid, which can make handling it somewhat harder. However it does allow you to distinguish between "nothing" and "black", unlike option 1.

For example:

EXCLUSIVE_COLOR = colors[2]; // {0, 0, 255}
...
EXCLUSIVE_COLOR = NULL; // Not pointing anywhere


To test if it's pointing somewhere you can simply use if:

if (EXCLUSIVE_COLOR) { 
   // you have a valid entry
}