user16869: I've wired up a dot matrix, and I display characters on the screen by using something like the example code below.
The Char_B variable is a global variable in a library used by the Arduino, and displayPixels() is called from inside the library.
bool Char_B[8][8] = {
{0,1,1,1,1,0,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,1,1,1,0,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,1,1,1,0,0,0}
};

displayPixels(1000, Char_B);

However, each time I declare a new character like the array above, I use a relatively massive amount of memory. Is there any way to reduce memory usage? Keep in mind I am willing to change the structure of the array if necessary, since I'll need well over 100 characters loaded onto the Arduino to write text.

user2881: Use a single byte to store a row of data. As a bool still takes a single byte.
Optionally you could flip the axis, and store column data, instead of row data in the array. Since letters like i use fewer columns that letters like B. Even in your example you can see you have 3 columns with only 0s.
A final suggestion would be to use PROGMEM and use the pgm_read_byte_near function. That way the data will remain in the flash memory, and will not take any space in the program-memory.

user13432: The data structure will take 64 bytes as sizeof bool is 1 byte not a bit. The first option is to pack each line (or column) in a byte (or bytes). The prefix 0b is for binary constant value (in gcc). 
uint8_t Char_B[8] = {
0b01111000,
...
0b01111000
};

The second option is to move the data structure to program memory.
const uint8_t Char_B[8] PROGMEM = { ... };

This will require reading each line with a special function.
for (int line = 0; line < sizeof(Char_B); line++) {
  uint8_t pixels = (uint8_t) pgm_read_byte(Char_B + line);
  ...
}


16869: <p>I've wired up a dot matrix, and I display characters on the screen by using something like the example code below.</p>

<p>The <code>Char_B</code> variable is a global variable in a library used by the Arduino, and <code>displayPixels()</code> is called from inside the library.</p>

<pre><code>bool Char_B[8][8] = {
{0,1,1,1,1,0,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,1,1,1,0,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,0,0,0,1,0,0},
{0,1,1,1,1,0,0,0}
};

displayPixels(1000, Char_B);
</code></pre>

<p>However, each time I declare a new character like the array above, I use a relatively massive amount of memory. Is there any way to reduce memory usage? Keep in mind I am willing to change the structure of the array if necessary, since I'll need well over 100 characters loaded onto the Arduino to write text.</p>
 2881: <p>Use a single byte to store a row of data. As a bool still takes a single byte.</p>

<p>Optionally you could flip the axis, and store column data, instead of row data in the array. Since letters like <code>i</code> use fewer columns that letters like <code>B</code>. Even in your example you can see you have 3 columns with only <code>0</code>s.</p>

<p>A final suggestion would be to use <code>PROGMEM</code> and use the <code>pgm_read_byte_near</code> function. That way the data will remain in the flash memory, and will not take any space in the program-memory.</p>
 13432: <p>The data structure will take 64 bytes as sizeof bool is 1 byte not a bit. The first option is to pack each line (or column) in a byte (or bytes). The prefix 0b is for <a href="https://gcc.gnu.org/onlinedocs/gcc/Binary-constants.html" rel="nofollow">binary constant value</a> (in gcc). </p>

<pre><code>uint8_t Char_B[8] = {
0b01111000,
...
0b01111000
};
</code></pre>

<p>The second option is to move the data structure to program memory.</p>

<pre><code>const uint8_t Char_B[8] PROGMEM = { ... };
</code></pre>

<p>This will require reading each line with a special <a href="http://www.nongnu.org/avr-libc/user-manual/group__avr__pgmspace.html#ga73084a8bbde259ffae72980354b3f027" rel="nofollow">function</a>.</p>

<pre><code>for (int line = 0; line &lt; sizeof(Char_B); line++) {
  uint8_t pixels = (uint8_t) pgm_read_byte(Char_B + line);
  ...
}
</code></pre>
