NOTE: Some machines at the University of Colorado have a D: drive that is too small to compile a project. In this case, you'll get an out of memory error. Move your work to a temporary directory on the C: Drive for these machines.
#include <graphics.h> void setpalette(int colornum, int color);
You can partially (or completely) change the colors in the EGA/VGA palette with setpalette. On a CGA, you can only change the first entry in the palette (colornum equals 0, the background color) with a call to setpalette.
The color parameter passed to setpalette can be represented by symbolic constants which are defined in graphics.h.
| Name | Value | 
| BLACK | 0 | 
| BLUE | 1 | 
| GREEN | 2 | 
| CYAN | 3 | 
| RED | 4 | 
| MAGENTA | 5 | 
| BROWN | 6 | 
| LIGHTGRAY | 7 | 
| DARKGRAY | 8 | 
| LIGHTBLUE | 9 | 
| LIGHTGREEN | 10 | 
| LIGHTCYAN | 11 | 
| LIGHTRED | 12 | 
| LIGHTMAGENTA | 13 | 
| YELLOW | 14 | 
| WHITE | 15 | 
![[WIN]](win.gif)
In the windows version, changing the palette effects only future drawing. Currently drawn pixels do not change their color when the palette changes (no "palette animation").
/* setpalette example */ 
#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(void)
{
   /* request autodetection */
   int gdriver = DETECT, gmode, errorcode;
   int color, maxcolor, ht;
   int y = 10;
   char msg[80];
   /* initialize graphics and local variables */
   initgraph(&gdriver, &gmode, "");
   /* read result of initialization */
   errorcode = graphresult();
   if (errorcode != grOk) {  /* an error occurred */
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);               /* terminate with an error code */
   }
   maxcolor = getmaxcolor();
   ht = 2 * textheight("W");
   /* display the default colors */
   for (color=1; color<=maxcolor; color++) {
      setcolor(color);
      sprintf(msg, "Color: %d", color);
      outtextxy(1, y, msg);
      y += ht;
   }
   /* wait for a key */
   getch();
   /* black out the colors one by one */
   for (color=1; color<=maxcolor; color++) {
      setpalette(color, BLACK);
      getch();
   }
   /* clean up */
   closegraph();
   return 0;
}