#include #include int MAX_SIZE = 10; int n = 0; //A counter variable which will keep track of number of elements in arr. void append(int *arr, int element) { if(n == MAX_SIZE) { MAX_SIZE = MAX_SIZE * 2; int *ptr = (int*)malloc(MAX_SIZE * sizeof(int)); //Copy elements of existing array to a new array for(int i=0;i
#include <stdio.h>
#include <stdlib.h>
int MAX_SIZE = 10;
int n = 0; //A counter variable which will keep track of number of elements in arr.
void append(int *arr, int element)
{
if(n == MAX_SIZE)
{
MAX_SIZE = MAX_SIZE * 2;
int *ptr = (int*)malloc(MAX_SIZE * sizeof(int));
//Copy elements of existing array to a new array
for(int i=0;i<n;i++)
{
ptr[i] = arr[i];
}
arr = ptr;
n++;
}
arr[n] = element;
}
int get(int *arr, int index)
{
return arr[index];
}
int main()
{
int *arr = (int*)malloc(MAX_SIZE * sizeof(int));
n = 10;
for(int i=0;i<n;i++)
arr[i] = i+1;
printf("\nArray size: %d", MAX_SIZE);
printf("\nNumber of elements: %d", n);
printf("\nArray: ");
for(int i=0;i<n;i++)
printf("%d ", arr[i]);
printf("\n\nAdding an element");
append(arr, 11);
printf("\nArray size: %d", MAX_SIZE);
printf("\nNumber of elements: %d", n);
printf("\nArray: ");
for(int i=0;i<n;i++)
printf("%d ", arr[i]);
int x = get(arr, 4);
printf("\n\nElement at index 4: %d", x);
return 0;
}
Make the above code by defining it as struct DynamicArray.
Step by step
Solved in 4 steps with 3 images