Δημοσιεύτηκε: 25 Ιουν 2012, 10:59
Και μιας και το αναφέραμε, θυμηθείτε πως ακόμα και στατικά ορισμένους πίνακες αν τους περάσουμε ως όρισμα σε συνάρτηση τότε μπορούμε να κάνουμε αριθμητική δεικτών πάνω τους...
Αντικατατήστε το #if 1 με #if 0 για να δείτε πως όταν το επιχειρούμε απευθείας, δεν δουλεύει.
- Μορφοποιημένος Κώδικας: Επιλογή όλων
-
#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 για να δείτε πως όταν το επιχειρούμε απευθείας, δεν δουλεύει.