I picked up a this piece of code I copy past to my program. This seems to be a new way to me to iterate through char**:
char** vArray; // The array containing values
// Go throught properties
if(szKey == "KeyMgmt")
{
vArray = (char**)g_value_get_boxed((GValue*)value);
for( ; vArray && *vArray ; vArray++) // Why does this work ?!
pWpaKey->addKeyMgmt(std::string(*vArray));
}
else if(szKey == "Pairwise")
{
// ...
}
It looks like to work like a charm but I don’t understant why! vArray is Supposed to contain an adress right? And *vArray the “string” value. So why when I “AND” an address with its value this give me an equality?
The loop condition is
This is basically shorthand for
which is true if the
char**pointer is non-null and points to achar*which is non-null.