Δημοσιεύτηκε: 25 Ιουν 2012, 10:59
από migf1
Και μιας και το αναφέραμε, θυμηθείτε πως ακόμα και στατικά ορισμένους πίνακες αν τους περάσουμε ως όρισμα σε συνάρτηση τότε μπορούμε να κάνουμε αριθμητική δεικτών πάνω τους...

Μορφοποιημένος Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>

/*********************************************//**
*
*************************************************
*/
void foo( const int array[] )
{
while ( -1 != *array )
printf( "%d\n", *array++ );

return;
}

/*********************************************//**
*
*************************************************
*/
int main( void )
{
int array[] = { 1, 10, 100, 1000, -1 };

#if 1 // this works fine
foo( array );

#else // this does not compile (or if it compiles it gives seg-fault)
while ( -1 != *array )
printf( "%d\n", *array++ );
#endif

exit( 0 );
}

Αντικατατήστε το #if 1 με #if 0 για να δείτε πως όταν το επιχειρούμε απευθείας, δεν δουλεύει.