Bonjour,
Je viens de faire les frais d'un code comme ceci :
En gros, passer un void* ou l'adresse d'un void*, le compilateur n'y voit pas de différence... Pas de warning, pas d'erreur quand on compile avec $ g++ prog.cc -Wall -Wextra -std=c++17 -pedantic (testable sur https://wandbox.org/).
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
18
19
20
21
22
23
24
25 #include <cstdio> struct Foo { int bar; }; static Foo foo; void* getObject() { return &foo; } void useObject(void* object) { printf("%s %p\n", __PRETTY_FUNCTION__, object); } int main() { void* handle = getObject(); useObject(handle); useObject(&handle); }
Comment ça se fait ?
Merci d'avance !![]()
Partager