Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Sortowanie przez wybieranie

Ostatnio zmodyfikowano 2017-06-20 22:25
Autor Wiadomość
carlosmay
» 2017-06-20 22:25:14
Użycie
( sizeof( tab ) / sizeof( tab[ 0 ] )
 jest niebezpieczne i trzeba wiedzieć co się robi.
W przypadku użycia, w miejscu deklaracji tablicy wszystko jest w porządku, ale użycie wobec tablicy przekazanej do funkcji może narobić zamieszania.

C/C++
#include <stdio.h>

void print_size_of( int * tab )
{
    printf( "%d \n", sizeof( tab ) / sizeof( tab[ 0 ] ) ); // może wypisać 1 (jeśli rozmiar wskaźnika jest akurat równy rozmiarowi int)
}

int main( void )
{
    int size;
    scanf( "%d", & size ); // wpisujemy 5
    int tab[ size ];
    int i;
    for( i = 0; i < size; ++i ) {
        printf( "%d\n", tab[ i ] ); // coś tam wypisze
    }
    printf( "%d \n", sizeof( tab ) / sizeof( tab[ 0 ] ) ); // wypisze 5
    print_size_of( tab );
    return 0;
}
P-162739
1 « 2 »
Poprzednia strona Strona 2 z 2