1.1 Arrays in Data Structure | Declaration,
Initialization, Memory representation
Understanding Memory and Arrays in Programming
In programming, memory is essentially a long tape of bytes, with each byte
containing 8 bits. This can be extended to both sides, making it open-
ended. To understand the need for arrays, we need to examine how areas
can be declared, initialized, and represented in memory.
Storing Values in Memory
To store a value in memory, we need to know how much space will be
allocated for it. For example, the data type int typically takes up 4 bytes to
store an integer. The number 5 would need to be converted to binary,
which is 32 bits or 4 bytes. In traditional compilers, we generally take 2 or 4
bytes to be the data type for storing numbers. So, if we were storing an
integer, it would take up 2-4 bytes in memory.
The memory manager would allocate some memory for storing a variable,
and the value stored in memory would be represented in binary. For
example, the value stored in a variable could be 5, which would be
represented as 101 in binary.
Using Arrays
An array is a collection of more than one element of the same datatype. For
example, an array of characters would be of the data type char, and an
array of integers would be of the data type int. The number of elements in
an array is determined by the size of the array.
To declare an array in programming, we use a specific syntax. In C
language, for example, we would write:
int n;
to declare an integer variable. To declare an array, we would use:
int a[16];
This creates an array called "a" with 16 elements.
Initializing Arrays
Arrays can also be initialized with values. For example, we could initialize
an array of integers with the values 1, 2, and 3 like this:
, int a[3] = {1, 2, 3};
Representing Arrays in Memory
To represent an array in memory, we need to know how the elements of the
array are stored. In a one-dimensional array, the elements are stored in a
single row with multiple columns.
Each element of the array takes up space in memory, depending on its data
type. For example, an array of integers would take up 2-4 bytes of memory
per element.
Overall, understanding memory and arrays is crucial to programming, as
they are fundamental building blocks of many programs and applications.
Arrays in Memory
In this video, we will discuss how data is stored in arrays in memory. All the
elements in an array are stored in consecutive/continuous locations with
the index starting at zero. The array can be statically initialized at compile
time or dynamically initialized at runtime.
One important point to note is that arrays are fixed-size. The elements are
stored in sequential/continuous locations with each element taking up the
same amount of memory.
Accessing Array Elements
The index of the array starts at zero (although it can start at one in some
cases). The size of the array is the number of elements it can hold (n), with
the index ranging from 0 to n-1. To access an element, use the formula:
base address + (i * size of data type).
The array follows the random access method, and accessing an element
has a time complexity of O(1).
Dynamic Allocation
The drawback of arrays is that the size needs to be specified at compile
time, which may not always be possible. We may not know how much space
we need until runtime. If we allocate more space than needed, there will be
unused memory. If we allocate less space than needed, we will run out of
memory.
To dynamically allocate memory, we use functions such as 'malloc' and
'calloc'. The amount of memory allocated is not contiguous, and the
location of the data may not be known.
Initialization, Memory representation
Understanding Memory and Arrays in Programming
In programming, memory is essentially a long tape of bytes, with each byte
containing 8 bits. This can be extended to both sides, making it open-
ended. To understand the need for arrays, we need to examine how areas
can be declared, initialized, and represented in memory.
Storing Values in Memory
To store a value in memory, we need to know how much space will be
allocated for it. For example, the data type int typically takes up 4 bytes to
store an integer. The number 5 would need to be converted to binary,
which is 32 bits or 4 bytes. In traditional compilers, we generally take 2 or 4
bytes to be the data type for storing numbers. So, if we were storing an
integer, it would take up 2-4 bytes in memory.
The memory manager would allocate some memory for storing a variable,
and the value stored in memory would be represented in binary. For
example, the value stored in a variable could be 5, which would be
represented as 101 in binary.
Using Arrays
An array is a collection of more than one element of the same datatype. For
example, an array of characters would be of the data type char, and an
array of integers would be of the data type int. The number of elements in
an array is determined by the size of the array.
To declare an array in programming, we use a specific syntax. In C
language, for example, we would write:
int n;
to declare an integer variable. To declare an array, we would use:
int a[16];
This creates an array called "a" with 16 elements.
Initializing Arrays
Arrays can also be initialized with values. For example, we could initialize
an array of integers with the values 1, 2, and 3 like this:
, int a[3] = {1, 2, 3};
Representing Arrays in Memory
To represent an array in memory, we need to know how the elements of the
array are stored. In a one-dimensional array, the elements are stored in a
single row with multiple columns.
Each element of the array takes up space in memory, depending on its data
type. For example, an array of integers would take up 2-4 bytes of memory
per element.
Overall, understanding memory and arrays is crucial to programming, as
they are fundamental building blocks of many programs and applications.
Arrays in Memory
In this video, we will discuss how data is stored in arrays in memory. All the
elements in an array are stored in consecutive/continuous locations with
the index starting at zero. The array can be statically initialized at compile
time or dynamically initialized at runtime.
One important point to note is that arrays are fixed-size. The elements are
stored in sequential/continuous locations with each element taking up the
same amount of memory.
Accessing Array Elements
The index of the array starts at zero (although it can start at one in some
cases). The size of the array is the number of elements it can hold (n), with
the index ranging from 0 to n-1. To access an element, use the formula:
base address + (i * size of data type).
The array follows the random access method, and accessing an element
has a time complexity of O(1).
Dynamic Allocation
The drawback of arrays is that the size needs to be specified at compile
time, which may not always be possible. We may not know how much space
we need until runtime. If we allocate more space than needed, there will be
unused memory. If we allocate less space than needed, we will run out of
memory.
To dynamically allocate memory, we use functions such as 'malloc' and
'calloc'. The amount of memory allocated is not contiguous, and the
location of the data may not be known.