/*------------------------------------------------------------------*/ /* teststack.c (Version 1: "Flat" Programming) */ /*------------------------------------------------------------------*/ #include #include #include int main(int argc, char *argv[]) { /* A stack of doubles: */ double *pdStack1Array; int iStack1Top; /* A stack of doubles: */ double *pdStack2Array; int iStack2Top; /* Sometime later... */ pdStack1Array = (double*)calloc(10, sizeof(double)); iStack1Top = 0; /* Sometime later... */ assert(pdStack1Array != NULL); assert(iStack1Top < 10); pdStack1Array[iStack1Top] = 1.1; ++iStack1Top; /* Sometime later... */ assert(pdStack1Array != NULL); assert(iStack1Top < 10); pdStack1Array[iStack1Top] = 2.2; ++iStack1Top; /* Sometime later... */ assert(pdStack1Array != NULL); while (iStack1Top > 0) { --iStack1Top; printf("%g\n", pdStack1Array[iStack1Top]); } free(pdStack1Array); /* Sometime later... */ pdStack2Array = (double*)calloc(20, sizeof(double)); iStack2Top = 0; /* Sometime later... */ assert(pdStack2Array != NULL); assert(iStack2Top < 20); pdStack2Array[iStack2Top] = 3.3; ++iStack2Top; /* Sometime later... */ assert(pdStack2Array != NULL); assert(iStack2Top < 20); pdStack2Array[iStack2Top] = 4.4; ++iStack2Top; /* Sometime later... */ assert(pdStack2Array != NULL); while (iStack2Top > 0) { --iStack2Top; printf("%g\n", pdStack2Array[iStack2Top]); } free(pdStack2Array); return 0; } /* Output: 2.2 1.1 4.4 3.3 */