ich stehe gerade auf dem Schlauch. Ich muss, als der Stoff behandelt wurde, krank gewesen sein. Ich habe folgendes Problem, zu dem mir keine Erklärung einfällt:
Code: Alles auswählen
#include <stdio.h>
void anzahlFeldelemente( int * feld )
{
int * lokalesFeld = feld;
printf( "\nAnzahl Elemente im Feld: %d\n", sizeof( lokalesFeld ) / sizeof( lokalesFeld[0] )); /* Ausgabe: 1, für mich falsch */
printf( "\nlokalesFeld[ 5 ]: %d\n", lokalesFeld[ 5 ] ); /* Ausgabe: 5 */
}
int main( void )
{
int einFeld[ 10 ] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
printf( "\nAnzahl Elemente im Feld: %d\n", sizeof( einFeld ) / sizeof( einFeld[0] )); /* Ausgabe: 10, korrekt */
anzahlFeldelemente( einFeld );
return 0;
}
Code: Alles auswählen
printf( "\nAnzahl Elemente im Feld: %d\n", sizeof( *lokalesFeld ) / sizeof( lokalesFeld[0] )); /* Ausgabe: 1 */
printf( "\nAnzahl Elemente im Feld: %d\n", sizeof( feld ) / sizeof( feld[0] )); /* Ausgabe 1 */
printf( "\nAnzahl Elemente im Feld: %d\n", sizeof( *feld ) / sizeof( feld[0] )); /* Ausgabe: 1 */
Gruß,
gelignite