You are using the == operator instead of the = operator. In practice, instead of assigning NULL to cxs[i] (which is what it would do if you used the assignment operator =) you are comparing each element with NULL and discarding the result of such comparison, thus the warning of your compiler.
Notice that you can initialize more simply your array using the notation
struct mystructure * cxs[MAXNOCXS] = {};
This syntax tells to the compiler to default-initialize1 all the elements of the array (since the braces, that would contain explicit initializers, are empty), which means that pointers get initialized to NULL and arithmetic types to 0.
If your array has "static storage duration" (i.e. it's a global or static variable), you don't need to do anything special because it's already default-initialized.
- To the value they would be initialized to if they were
static variables (C99, §6.7.8 ¶10, ¶21).
Edit
After reading around, it seems that the C standard, unlike the C++ one, do not support empty initializers. Still, you can always do:
struct mystructure * cxs[MAXNOCXS] = {NULL};
which will initialize the first element with NULL, and let the other elements be default-initialized (again to NULL).