I was trying to compare both "arrays" and "pointers as arrays". When I run part1 and part2 separately, they execute fine but when I run the whole code, I get segmentation fault.
#include<stdio.h>
int main(){
int *p;
int arr[5],i,var;
//PART-1
p=&var;
for(i=0;i<5;i++){
*(p+i)=i+1;
}
printf("\n\nPointers: ");
for(i=0;i<5;i++){
printf("%d ",*(p+i));
}
//PART-2
for(i=0;i<5;i++){
arr[i]=i+1;
}
printf("Array: ");
for(i=0;i<5;i++){
printf("%d ",arr[i]);
}
return 0;
}
This code runs fine:
#include <stdio.h>
int main()
{
int *p;
int arr[5],i,var;
p=&var;
for(i=0;i<5;i++){
*(p+i)=i+1;
}
printf("\n\nPointers: ");
for(i=0;i<5;i++){
printf("%d ",*(p+i));
}
return 0;
}