Ahoj, nemohl by mi někdo vysvětlit, proč mi ve funkci tiskPole vrací sizeof(pole) velikost 4, namísto skutečné velikosti pole samotného (v mém případě 14 prvků, tedy 14 * 4 = 56, 56 je číslo, které bych očekával), tedy vrací velikost typu int. Zdrojový kód:
#include "stdafx.h"
#include <iostream>
using namespace std;
void tiskPole(int pole[])
{
int velik = sizeof(pole) / sizeof(int);
for (int i = 0; i < velik; i++)
{
cout << pole[i] << endl;
}
}
int _tmain(int argc, _TCHAR* argv[])
{
int pole[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
tiskPole(pole);
}
Nejvíce mne zaráží, že když přímo do mainu dopíši např.
int velik_test = sizeof(pole);
do proměnné velik_test se správně přiřadí 56, nikoli 4. Jak to, že to ve funkci nefunguje?
Díky za radu.