home *** CD-ROM | disk | FTP | other *** search
- /* ------------------------------------------------- */
- /* TARRAY.C */
- /* Test der Verwaltung dynamischer Arrays */
- /* (c) 1992 Thomas Lach & DMV-Verlag */
- /* ------------------------------------------------- */
-
- #include "array.h"
-
- void main()
- {
- _Array *ary;
- unsigned cnt = 0;
- struct stru {
- unsigned u;
- char s[128+1];
- } stru, *st, *s;
-
- ary = ArrayStart(sizeof(stru));
-
- if (ary != NULLARRAY)
- {
- while(1) {
- /* soviel Speicher wie möglich belegen */
- stru.u = cnt++;
- sprintf(stru.s, "%04x", stru.u);
- if (ArrayAdd(ary, (char *)&stru) == NULLARRAY)
- break;
- }
-
- printf("\nAnzahl Elemente : %u\n"
- "Benötigter Speicherplatz : %ld\n"
- "\n\>> Bitte eine Taste drücken <<\n",
- ArrayElemNum(ary),
- (long)(ArrayElemNum(ary)-1)*(long)ary->ItemSize);
- getch();
-
- stru.u = -1;
- strcpy(stru.s,"CHANGED");
- ArrayChg(ary, (char *)&stru, 20);
-
- for( ; ArrayGet(ary,
- (ArrayElemNum(ary)-1)) != NULLARRAY; ) {
- st = (struct stru *)ArrayGet(ary,
- (ArrayElemNum(ary)-1));
- /* addressiert wird so ... */
-
- s = (struct stru *)ArrayData(ary);
- *st = s[(ArrayElemNum(ary)-1)];
- /* ... oder so ... */
-
- memcpy(&stru,
- (struct stru *)ArrayGet(ary,
- (ArrayElemNum(ary)-1)), ary->ItemSize);
- /* ... oder so */
-
- printf("%8d -- %s\n",
- /* ... oder so */
- ((struct stru *)ArrayGet(ary,
- (ArrayElemNum(ary)-1)))->u,
- ((struct stru *)ArrayGet(ary,
- (ArrayElemNum(ary)-1)))->s);
-
- ArrayDel(ary, (ArrayElemNum(ary)-1));
- }
-
- ArrayKill(ary); /* Array-Pointer auflösen */
- }
- else
- puts("Nicht genügend Speicherplatz vorhanden !");
- }
- /* ------------------------------------------------- */
- /* Ende von TARRAY.C */
-
-