Συντονιστής: konnn



g1wrg0s έγραψε:Μπορει να μην γινεται ξεκαθαρο απο το παραπανω μηνυμα μου αλλα κι εγω στον ορισμο κολλαω . Στον τροπο με τον οποιο το οριζει ο τυπας στο παραδειγμα που παραθετει ο stamatiou. Δεν το οριζει ως **argv διοτι οπως σωστα αναφερεις , δεν θα υπηρχε προβλημα με αριθμιτικη δεικτων, αλλα ως *argv[] .

#include <stdio.h>
#include <stdlib.h>
/*********************************************//**
*
*************************************************
*/
int main( int argc, char **argv )
{
while ( *argv )
puts( *(argv++) );
exit( 0 );
}
> gcc aaa.c -o aaa.exe
> aaa 1 2 3 4 5
aaa
1
2
3
4
5
>

#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 );
}


g1wrg0s έγραψε:Και η foo ενα στατικο δεν δημιουργει κανοντας κοπια στα στοιχεια του πινακα της main; Οποτε γιατι να επιτρεπεται αριθμιτικη δεικτων;


g1wrg0s έγραψε:Δηλαδη foo(int array[]) ειναι ακριβως το ιδιο με το foo(int *array);
Για 2D : foo(int array[][2]) ειναι ακριβως το ιδιο με το foo(int **array);
