I am trying to implement insertion of an element in an array on my computer but size_array=sizeof(array)/sizeof(array[0])
was giving the wrong answer, the array contains 5 elements but this piece of code was printing size equal to 2.
#include <stdio.h>
#include <stdlib.h>
void insert(int * array,int number_of_elements,int index,int value)
{
int size_array,i;
size_array=sizeof(array)/sizeof(array[0]);
printf("%d\n",size_array);
if(size_array==number_of_elements)
{
printf("Insertion failed");
exit;
}
else
{
for(i=number_of_elements;i>index;i--)
{
array[i]=array[i-1];
}
array[index]=value;
}
}
int main()
{
int array[5],i,number_of_elements=5,value=-9,index=3;
for(i=0;i<=number_of_elements-1;i++)
{
scanf("%d",&array[i]);
}
printf("\n");
for(i=0;i<=number_of_elements-1;i++)
{
printf("%d\t",array[i]);
}
printf("\n");
insert(array,number_of_elements,index,value);
for(i=0;i<=number_of_elements;i++)
{
printf("%d\t",array[i]);
}
printf("\n");
return 0;
}