- * for reference):
- \verbatim
-// GOOD EXAMPLE
-{ / *01* /
- char * volatile / *03* / cp1 = NULL / *02* /;
- char * volatile / *03* / cp2 = NULL / *02* /;
- char * volatile / *03* / cp3 = NULL / *02* /;
- try {
- cp1 = mallocex(SMALLAMOUNT);
- globalcontext->first = cp1;
- cp1 = NULL / *05 give away* /;
- cp2 = mallocex(TOOBIG);
- cp3 = mallocex(SMALLAMOUNT);
- strcpy(cp1, "foo");
- strcpy(cp2, "bar");
- }
- clean { / *04* /
- printf("cp3=%s", cp3 == NULL / *02* / ? "" : cp3);
- if (cp3 != NULL)
- free(cp3);
- if (cp2 != NULL)
- free(cp2);
- / *05 cp1 was given away * /
- }
- catch(ex) {
- / *05 global context untouched * /
- rethrow;
- }
-}\endverbatim
-