CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Pointeur nul

d0_ob
d0_ob
Niveau 7
02 juin 2003 à 21:47:23

Quand on initialise un pointeur nul, celui ci pointe vers le premier octet de la mémoire, n´est ce pas ?

Coyooote
Coyooote
Niveau 5
02 juin 2003 à 22:03:31

Un pointeur null point n´importe ou dans la memoire, pas forcement vers le premier octet de la mémoire. Il pointe vers une adresse inconnue.

d0_ob
d0_ob
Niveau 7
02 juin 2003 à 22:08:59

Sur ?

Coyooote
Coyooote
Niveau 5
02 juin 2003 à 22:30:05

Mouaip m´sieur !

hs_dino
hs_dino
Niveau 9
02 juin 2003 à 22:43:36

Un pointeur NULL point a l´adresse 0. Il ne pointe pas sur n´importe quoi. Cependant, l´architecture PC/Windows empeche l´acces a cette adresse car elle n´est pas dans la zone utilisateur définie par le système. Mais on pourrait très bien imaginé un système qui possede une zone memoire utilisateur en 0x00000000, dans ce cas NULL pointerait effectivement sur des données.

Dino
The Zythum Project
http://www.zythum-project.com
En voici sa definition:

  1. define NULL 0
Kelios
Kelios
Niveau 8
02 juin 2003 à 22:47:46

" #define NULL 0 "

En fait c´est plutôt:

  1. define NULL ( void *)0

si je me rapelle bien... ^^

Kelios
---------

Kouic
Kouic
Niveau 9
02 juin 2003 à 22:51:22

Hmmm, c´est pas bien de dire qu´un pointeur NULL ne pointe pas sur n´importe quoi. Meme si c´est physiquement vrai. La constante NULL peux avoir une valeur differente pour chaque syteme, non ?
Dans tout les cas, un pointeur NULL ne doit pas etre utilisé, qu´il pointe sur un endroit connu ou pas.

Kelios
Kelios
Niveau 8
03 juin 2003 à 00:13:15

" La constante NULL peux avoir une valeur differente pour chaque syteme, non ? "
Selon la norme ANSI en tout cas, je crois que c´est 0...
Alors si le compilateur suit la norme, tout va: sinon...

Sinon, un pointeur NULL vaut toujours mieux qu´un pointeur ininitialisé, à mon avis, car le pointeur initialisé est rempli par les octets à son adresse: qu´il a-t-il de plus dangereux pour un pointeur pointant sur n´importe quoi?

Kelios
---------

SuperDindon
SuperDindon
Niveau 8
03 juin 2003 à 07:34:04

" Mais on pourrait très bien imaginé un système qui possede une zone memoire utilisateur en 0x00000000, dans ce cas NULL pointerait effectivement sur des données. "

Ouaip c le cas pour Win32, les 4 premiers et derniers ko de la zone User sont toujours vierges(du 0x00 partout)

Coyooote
Coyooote
Niveau 5
03 juin 2003 à 07:57:20

http://www-ic2.univ-lemans.fr/~alissali/Enseignement/Polys/AlgoCunix/node52.html

Kelios a raison la norme ANSI défini la valeur NULL égal à 0. Mais faisait gaffe tout les compilateur ne sont pas a la norme ANSI. Je pense à certain compilateur de µC ( Scenix...), ou meme certain compilateur sous windows.

Bref, utiliser NULL comme pointeur non assigne. De toute facon il ne me semple pas d´un pointeur NULL soit utilisable ( sans generer d´erreur de violation d´acces) meme en ANSI.

hs_dino
hs_dino
Niveau 9
03 juin 2003 à 08:53:52

" Kelios says:

En fait c´est plutôt:

  1. define NULL ( void *)0"

Définition en C :

  1. define NULL ( void *)0

Définition en C++ : #define NULL 0

J´ai pris ca direct depuis les fichiers . h

Dino
The Zythum Project
http://www.zythum-project.com

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment