Taille D'un tableau C++ [dupliquer]

Double Possible:

Sizeof tableau passé en paramètre

je me demandais pourquoi la sortie du code suivant est 1 et 9. Est-ce à cause d'un tableau non déclaré dans la taille de la fonction? Comment puis-je séparer la "taille du tableau" d'une fonction?

#include "stdafx.h"
#include <iostream>
using namespace std;

int size(int a[])
{
    return sizeof a/sizeof a[0];
}

int main()
{   
    int a[] = {5,2,4,7,1,8,9,10,6};
    cout << size(a) << endl;
    cout << sizeof a/sizeof a[0] << endl;
    system("pause");
    return 0;
}
10
demandé sur Community 2012-11-21 13:56:37

7 réponses

quand vous écrivez size(a) alors vous passez un pointeur et pas un tableau. Depuis la taille d'un pointeur et un int 4 ou 8 (selon ABI), vous obtenez