What is problem with my code, that it shows "stack smashing detected" Problem Statement: Given an array, we have to find the smallest element in the array.
#include<stdio.h> int main(){ int arr[20],i,j,c,x,num; scanf("%d",&num); for(x=0;x<num;x++){ scanf("%d",&arr[x]); } for(i=0;i<sizeof(arr)-1;i++){ if(arr[i]>arr[i+1]){ c=arr[i]; arr[i]=arr[i+1]; arr[i+1]=c; } } printf("%d",*(arr+0)); return 0; }
sizeof(arr)? What is the result? Do you understand why?num> 20?