This call
PrintArray(&arr[i], n);
always uses as the number of outputted elements of the array the value stored in the variable n. So independent of the starting index i the function will try to output exactly n elements that results in accessing memory beyond the array.
You have to write
PrintArray( &arr[i], n - i );
or
PrintArray( arr + i, n - i );
However it seems you want to output the whole array in each iteration. If so then you should just write
PrintArray( arr, n );
Also pay attention to that you should use the type size_t instead of the type int for the parameter that specifies the number of elements in the array because an object of the type int in general can be not large enough to store the possible number of elements in an array.
That is your function should be declared like
void SelectionSort(int arr[], size_t n);
Correspondingly the function PrintArray should be declared like
void PrintArray( const int arr[], size_t n );
Pay attention to that the first parameter has the qualifier const because elements of the array are not being changed within the function.
Also you should swap two elements of the array only in case when they are not the same one element.
Here is a demonstrative program.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void PrintArray( const int [], size_t );
void Swap( int *, int * );
void SelectionSort( int arr[], size_t n )
{
for ( size_t i = 1; i < n; i++ )
{
PrintArray( arr + i - 1, n - i - 1 );
size_t min_idx = i - 1;
for ( size_t j = i; j < n; j++ )
{
if ( arr[j] < arr[min_idx] ) min_idx = j;
}
if ( min_idx != i - 1 ) Swap( &arr[min_idx], &arr[i-1] );
}
}
void PrintArray( const int arr[], size_t n )
{
for ( size_t i = 0; i < n; i++ )
{
printf( "%d ", arr[i] );
}
putchar( '\n' );
}
void Swap( int *a, int *b )
{
int tmp = *a;
*a = *b;
*b = tmp;
}
int main(void)
{
enum { N = 10 };
int a[N];
srand( ( unsigned int )time( NULL ) );
for ( size_t i = 0; i < N; i++ )
{
a[i] = rand() % N;
}
SelectionSort( a, N );
PrintArray( a, N );
return 0;
}
The program output is
2 2 9 2 3 9 3 2
2 9 2 3 9 3 2
9 2 3 9 3 2
9 3 9 3 2
3 9 3 9
9 3 9
9 9
9
2 2 2 2 2 3 3 5 9 9