Based on the function "btoptions" from postgres source, which takes aas a first arg a text[] :
ArrayType *array;
Datum *dimdatums;
int ndim;
array = DatumGetArrayTypeP(dimensions);
Assert(ARR_ELEMTYPE(array) == TEXTOID);
pcinfo("after assert \n");
deconstruct_array(array, TEXTOID, -1, false, 'i',
&dimdatums, NULL, &ndim);
//construct the array to hold the result :
char ** final_dimension_array = (char **) pcalloc(ndim * sizeof(char * ) );
for (i = 0; i < ndim; i++)
{
text *dimensiontext = DatumGetTextP(dimdatums[i]);
char *text_str = VARDATA(dimensiontext);
int text_len = VARSIZE(dimensiontext) - VARHDRSZ;
char *s;
char *p;
s = TextDatumGetCString(dimdatums[i]);
final_dimension_array[i] = s;
}
//pcinfo("end of the text retrieval\n");