[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux] Re: [devel] Petit soucis avec C.
- To: linux@lists.linuxbe.org
- Subject: [linux] Re: [devel] Petit soucis avec C.
- From: Damien Diederen <dash@linuxbe.org>
- Date: Sat, 30 Jun 2001 20:37:27 +0200
- In-reply-to: <>; from p.charlier@chello.be on Sat, Jun 30, 2001 at 04:45:36PM +0200
- References: <>
- Reply-to: Damien Diederen <dash@linuxbe.org>
- User-agent: Mutt/1.2.5i
Hello !
On Sat, Jun 30, 2001 at 04:45:36PM +0200, CHARLIER Philippe wrote:
[.../...]
> #include <stdio.h>
>
> int main (int argc, char **argv)
> {
> char **p_char;
> char *pointeur;
> int i;
>
> *p_char = "Bonjour";
^^^^^^^
À ce point de ton programme, 'p_char' est indéfini lorsque que tu le
déréférence ! Ce qui se passe par la suite est donc indéfini également.
Tu as de la « chance » que le programme continue ¹.
L'affichage de 'Abandon' se fait en fait _après_ le retour du main, car
tu as écrasé des données propres à la libc, qui se rend compte d'une
incohérence et fait un abort ().
¹ En fait, c'est plutôt de la malchance, car si ton programme avait
bêtement crashé, tu aurais pu facilement utiliser gdb pour voir sur
quelle instruction.
> *(p_char + 1) = "Hello";
> *(p_char + 2) = "Goeiedag";
[.../...]
Cu,
Dash.
--
For every complex problem there is an answer that is clear, simple, and
wrong.
-- H. L. Mencken
--
Damien Diederen
dash@linuxbe.org
http://users.swing.be/diederen/
[ Soyez précis dans vos sujets svp afin de déterminer directement ]
[ le type de demande... ]
[ Pour vous (dés)inscrire, aller sur http://linuxbe.org/ml.php ]
[ http://LinuxBe.org Contact: listmaster@linuxbe.org ]