Rechercher : dans
Par :

Sur le pointeur null en C et les fichiers .h

Dernière réponse le 5 déc 2007 à 11:54:15 Yacouba, le 8 mai 2004 à 11:24:55 
 Signaler ce message aux modérateurs

Salut à tous. je debute en C et des questions me gênent(2 pour l'instant) merci de m'eclairer

1)j'ai lu que NULL est defini comme égale à la constante entière 0 ; la ou le bat blesse c'est que c'est censé ne pointer sur ... rien alors que 0=0000 est bien une adresse (le debut de n'importe quel segment ce que j'ai appris en ASM) je ne comprends rien!

2) j'ai observé des fichiers d'en tete mais je ne vois que les prototypes de fonctions mais je cherche a voir surtout la définition(le code source) de ces fonctions. où les trouve t on ?

REM: j'utilise borland c++ sous windows

Meilleures réponses pour « sur le pointeur null en C et les fichiers .h » dans :
Comment ouvrir un fichier PPS (présentation PowerPoint) ? VoirComment lire un fichier PPS ? Les fichiers PPS sont des diaporamas crées avec le logiciel PowerPoint. Il s'agit simplement de fichiers PPT dont l'extension du nom de fichier a été modifiée en PPS. Il est possible de les ouvrir avec un des logiciels...
Fichiers sqmdata**.sqm et sqmnoopt**.sqm VoirLes fichiers sqmdata**.sqm et sqmnoopt**.sqm Vous avez peut-être remarqué un nombre important de fichiers au format SQM sur votre disque dur. Ceux-ci sont sous la forme sqmdata**.sqm ou sqmnoopt**.sqm (** sont deux chiffres aléatoires) A la...
Langage C - Notion de préprocesseur VoirDéfinition du préprocesseur Dans les chapitres précédents, un programme simple vous a été présenté, il s'agit du programme suivant : int main(void) { printf("Ceci est votre premier programme"); } Dans ce programme la fonction principale...
Fichier M3U VoirFormat M3U Un fichier M3U est une playlist audio, c'est-à-dire une liste de lecture pointant vers des fichiers audio. Comment lire un fichier M3U ? Une telle liste peut être lue avec n'importe quel logiciel de lecture audio capable de lire des...

1

Fu Xuen, le 8 mai 2004 à 12:00:44

Salut,

1) Dans mes souvenirs, le C fait en sorte que rien ne se trouve à l'adresse 0 ; un pointeur générique vers cette adresse ne pointe donc sur rien. Dans la bibliothèque standard <stddef.h>, il est effectivement défini comme suit :

#define NULL ((void*) 0)

2) L'implémentation d'une fonction est dans un fichier .c, qui déclare dans son entête le fichier .h où se trouve le prototype.

-= Fu Xuen =-

Répondre à Fu Xuen

2

Ravachol, le 8 mai 2004 à 12:08:55

Salut,
1: Ce qu'il faut savoir et qui est suffisant dans un premier temps, je pense, c'est que toutes les implémentations de C te garantisent qu'en affectant NULL à un pointeur celui ne pointera sur aucune adresse physique valide.

2: C'est normal que tu ne trouves pas la définition d'une fonction dans un header car celui ci n'est pas fait pour ça. Il ne doit contenir que le prototype des fonctions, variables, structures, etc que tu souhaites exporter. Tu dois trouver les définitions dans un fichier .c, ex: tonUnite.h contient les déclarations, tonUnite.c contient les définitions.

A++

Sans dieu c'est le néant, avec dieu c'est le néant suprême
SEBASTIEN FAURE.

Répondre à Ravachol

3

Fu Xuen, le 8 mai 2004 à 12:23:13

J'suis preum's :P.

-= Fu Xuen =-

Répondre à Fu Xuen

4

Ravachol, le 8 mai 2004 à 12:52:34

Salut,
Ouais désolé pour le doublon ;-)

Sans dieu c'est le néant, avec dieu c'est le néant suprême
SEBASTIEN FAURE.

Répondre à Ravachol

5

Fu Xuen, le 8 mai 2004 à 14:18:31

Pas de problème, ça veut dire que tu as pris la peine de soigner la rédaction de ton message :). Et puis tu es un peu plus précis.

-= Fu Xuen =-

Répondre à Fu Xuen

6

chatbotté, le 27 mai 2004 à 16:01:28

NULL vaut 0

c'est UNE adresse

quelle soit valide ou non en mémoire c'est pas ton problème

PAR CONTRE tu dois blinder tes fonctions pour ne pas utiliser de pointeur qui vaut NULL

exemple

en C:
void freeSecurise(int* p) {
if (p!=NULL)
free(p);
}

en C++:
void freeSecurise(int*& p) {
if (p!=NULL) {
free(p);
p = NULL;
}
}

Répondre à chatbotté

7

 bob, le 5 déc 2007 à 11:54:15

Bob morane c'est le meilleur!!!!!!!!!!!!!!!!!!!!

Répondre à bob