int QSget_rownames (QSprob p, char **rownames)
/* p is an initialized QSprob, a handle to an existing LP problem  */

int rval, nrows, i;
char **rownames;

nrows = QSget_rowcount (p);
rownames = (char **) malloc (nrows * sizeof (char *));

rval = QSget_rownames (p, rownames);
if (rval) {
    fprintf (stderr, 
             "Could not get row names, error code %d\n", rval);
} else {
    printf ("Constraint Names\n");
    for (i = 0; i < nrows; i++) {
        printf ("%s\n", rownames[i]);
    }

    /* Need to free the individual names */

    for (i = 0; i < nrows; i++) {
        /* Use QSfree for mem allocated by QSopt */
        QSfree (rownames[i]); 
    }
}

/* Use free for mem allocated by system malloc */
free (rownames);