Arrays: Memory


The Relationship between Strings and Arrays

A string in C is essentially a block of memory where each subsequent byte stores the next character in the string. That is, the first character goes into the first byte the second character into the second byte. In other words, all of the characters are in contiguous bytes. The end of the string is then marked with a special character '\0' called the null character. If you consider what an array looks like in memory, it is essentially contiguous blocks of the same data-type. So a string in C is a type of an array, namely a char array which is null-terminated array. The null character marks the end of the array to make it easy to know when the string ends (and thereby avoid moving off the end of an array and possibly causing a memory violation).

Figure %: "SPARK" in Memory

For example, if you declare a string char *str="SPARK"; then you can index into the string by treating str as an array. So str[0] is the character 'S'. str[3] is the character 'R'. str[5] is the null character which marks the end of the string. Many string routines rely on strings being null terminated and may cause memory violations if this is not the case.

Take a Study Break

Green YOUR SCHOOL!

Click here to get involved with dosomething.org!

John Krasinski's BIG MIRACLE

Click to watch the trailer and read exclusive star interviews!

Do you like Anna?

Read Dear Albert... from ANNA's perspective!

BATTLESHIP, the movie

Here's why we're super jazzed about it.


The Book

Cover image

Read What You Love, Anywhere You Like

Get Our FREE NOOK Reading Apps