0
votes

Utilisation des pointeurs dans une allocation de mémoire dynamique

Quelqu'un peut-il m'expliquer pourquoi quand je l'alloue dynamique de mémoire avec calloc ou masloc i déclarez: xxx

et non xxx


0 commentaires

3 Réponses :


2
votes

Parce que dans le premier exemple, vous faites Art le pointeur sur la mémoire. Dans le deuxième exemple, vous faites ce que Art pointe vers le pointeur sur la mémoire allouée.

En d'autres termes, vous avez déclaré ARR comme un pointeur. MALLOC renvoie un pointeur à la mémoire allouée. Donc, vous "remplissez" arr avec cette valeur. Dans votre deuxième exemple, vous remplissez * ARR - à quoi arrondi - avec la valeur renvoyée par Malloc.


0 commentaires

2
votes

arr est un int * , c'est-à-dire, c'est-à-dire "pointeur sur int ". Lorsque vous allouez de manière dynamique la mémoire à l'aide de MALLOC , vous obtenez un pointeur qui pointe sur cette mémoire et doit l'affecter à une variable, dans ce cas, arr . .

* arr (c'est-à-dire la déséroférence de Art ) serait un int . * arr est la valeur que arr compte pointe, pas le pointeur (adresse) elle-même.


0 commentaires

1
votes

Dans ce code SNIPPET:

*arr = malloc(n * sizeof(int));


0 commentaires