Δημοσιεύτηκε: 02 Φεβ 2012, 01:05
από migf1
Αν το κάνεις με τον τρόπο που το ξεκίνησες, δηλαδή με χρήση του -1 ως σηματοδότη τέλους του κάθε πίνακα, τότε είναι πολύ πιο απλός ο κώδικας από αυτό που λέτε (ειδικά αν δεν βάλουμε ελέγχους αποτυχίας στην main() )...

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <stdlib.h>

typedef enum { FALSE=0, TRUE } Bool;

/* --------------------------------------------------
*
* --------------------------------------------------
*/
Bool arrswap( int **arr1, int **arr2 )
{
int *temp = NULL;

if ( !arr1 || !arr2 )
return FALSE;

temp = *arr1;
*arr1 = *arr2;
*arr2 = temp;

return TRUE;
}

/* --------------------------------------------------
*
* --------------------------------------------------
*/
Bool arrprint( const int *arr )
{
if ( !arr )
return FALSE;

while ( *arr != -1 )
printf( "%d ", *arr++ );
putchar('\n');

return TRUE;
}

/* --------------------------------------------------
*
* --------------------------------------------------
*/
int main( void )
{
int arr1[] = {1, 2, 3, 4, -1};
int arr2[] = {10, 20, 30, -1};

arrprint( arr1 );
arrprint( arr2 );

arrswap( &arr1, &arr2 );

arrprint( arr1 );
arrprint( arr2 );

exit( EXIT_SUCCESS );


Αυτό που ζητάει η άσκηση όμως είναι αρκετά πιο σύνθετο ;)