home *** CD-ROM | disk | FTP | other *** search
- // ex03004.cpp
- // the C++ free store: more dynamic array allocation
- #include <iostream.h>
- #include <stdlib.h>
- #include <string.h>
-
- // ---------- compare function to sort array of pointers
- extern "C" {
- int comp(const void *a, const void *b)
- {
- return strcmp(*(char **)a, *(char **)b);
- }
- }
-
- main()
- {
- cout << "How many names at most? ";
- int maxnames;
- cin >> maxnames;
- char **names = new char *[maxnames];
- for (int namect = 0; namect < maxnames; namect++) {
- cout << "Enter a name: ";
- char *name = new char[80];
- cin >> name;
- if (strcmp(name, "end") == 0)
- break;
- names[namect] = new char[strlen(name)+1];
- strcpy(names[namect], name);
- delete name;
- }
- qsort(names, namect, sizeof(char *), comp);
- for (int i = 0; i < namect; i++)
- cout << names[i] << '\n';
- for (i = 0; i < namect; i++)
- delete names[i];
- delete names;
- }