Salut,

je débute donc en C, vous vous en doutez, et je suis en train de lire le coours d'initiation au C par Melem

voici un code qui fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#define len(t) ( sizeof(t) / sizeof([0]) )
 
void show(int *t, int t_len)
{
    int i;
    for ( i=0 ; i < t_len ; i++ )
        printf("i : %d\n%x\n", i, *(t+i));
}
 
int main()
{
    int tbl[] = { 10, 20, 30 };
    show(tbl, len(tbl));
    return 0;
}
Maintenant, ce que je voudrais faire, c'est faire en sorte que les arguments de show n'aient pas de type définis, ou plutôt que le premier argument de show prenne le même type que celui qui lui est passé lors d'un appel a show ; ce qui me permettrait de pouvoir passer aussi bien des tableaux de type char que des tableaux de type long en premier argument à show... Est-ce possible ? Si oui comment ?

Edit: Bon, comme un couillon j'avais pas lu ne serait-ce qu'un peu plus loin le cours, sinon j'aurais vu l'histoire des pointeurs génériques, toutefois, je n'arrive pas pour autant à me servir de ces pointeur génériques en tant qu'argument lors de la définition de la fonction...

J'ai bien crée une nouvelle fonction qui me permet l'affichage d'un élément d'un tableau dont le type n'est pas connu lors de la definition de la fonction, mais je me dis qu'il doit bien y avoir plus élégant quand même...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void * showE(char * p, int n, int size)
{
	int ad = ( p+((n-1)*size) );
	printf("adress : %x\n", ad);
	return *( p+((n-1)*size) );
}