int QSget_basis_order (QSprob p, int *basorder)
/* p is an initialized QSprob, a handle to an existing LP problem  */

int i, rval, ncols, nrows;
int *basorder;

ncols = QSget_colcount (p);
nrows = QSget_rowcount (p);
basorder = (int *) malloc (nrows * sizeof (int));

rval = QSget_basis_order (p, basorder);
if (rval) {
    fprintf (stderr, "could not obtain order, error code %d\n", rval);
} else {
    for (i = 0; i < nrows; i++) {
        if (basorder[i] < ncols) {
            printf ("Basis[%d] = Column %d\n", i, basorder[i]);
        } else {
            printf ("Basis[%d] = Row %d\n", i, basorder[i] - ncols);
        }
    }
}

free (basorder);