Bonjour,
Je cherche un moyen de récupérer la taille d'un tableau statique déclarée comme cela :
Question 1 : Peux t-on récupérer la taille du buffer sans passer la taille en paramètre à la fonction foo ?
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
17 int foo(char* buffer /* char buffer[1024] */) { // Affiche 4 la taille du pointeur mais je voudrais en fait récupérer 1024 printf("sizeof(buf) = %d\n", sizeof(buf)); } int main() { char buffer[1024]; // Affiche bien 1024 printf("sizeof(buf) = %d\n", sizeof(buffer)); foo(buffer); ... }
Question 2 : Où est stocké l'adresse et la taille de buffer ? Dans le fichier objet, le fichier binaire ou alors déterminé au runtime ? De manière à pouvoir la récupérer quelque part...
En fait, je voudrais savoir si les adresses (et leur taille dans mon exemple 1024) des tableaux statiques sont stockées dans le fichier main.o ou alors dans le binaire final main.exe ?
Je travaille sous Windows 7, je sais que chaque programme dispose d'un espace de mémoire virtuelle, mais je ne sais pas trop comment cela marche.
Merci d'avance et bonne journée
Partager