Fonctionnement des pointeurs
Bonjour à tous ! :)
Après avoir lu des articles sur les pointeurs, dont celui de developpez.com, j'aimerais mettre au clair quelques incompréhensions. Oui je suis un peu lent... :lol:
Voici mes 3 questions:
- Est ce que ces 2 lignes d'instructions sont identiques ?
Code:
1 2 3 4
| int *px = malloc(sizeof(int));
//EST LA MEME CHOSE QUE:
int *px;
// ? |
Autrement dit, malloc ne trouve son utilité que lorsque nous souhaitons considérer la mémoire allouée autrement qu'une suite d'octets ? Ceci dans le but d'utiliser notre pointeur comme un tableau ?
Donc lorsque je veux initialiser une chaîne de caractère, il est inutile d'utiliser un malloc ? Si je fais ceci:
Code:
char *phrase= "Bonjour à tous.";
- La mémoire va prévoir un octet par caractère + 1 et cet emplacement ne risquera pas d'être effacé par l'initialisation d'une autre variable ?
- Aussi j'ai cru comprendre qu'un pointeur attendait une adresse, dans la ligne d'instruction ci-dessus je ne lui en ai pourtant pas donné... Est-ce une intervention du compilateur ?
D'avance je vous remercie pour votre aide !