#define sk_new_null() sk_new(NULL)
-#define M_sk_num(sk) ((sk)->num)
-#define M_sk_value(sk,n) ((sk)->data[n])
+#define M_sk_num(sk) ((sk) ? (sk)->num:-1)
+#define M_sk_value(sk,n) ((sk) ? (sk)->data[n] : NULL)
int sk_num(STACK *);
char *sk_value(STACK *, int);
void sk_zero(STACK *st);
int (*sk_set_cmp_func(STACK *sk, int (*c)()))();
STACK *sk_dup(STACK *st);
+void sk_sort(STACK *st);
#ifdef __cplusplus
}