En utilisant le pointeur sur le tableau char, les valeurs de ce tableau peuvent être accédées?
J'ai créé ptr comme pointeur sur un tableau de 5 caractères.
char (*ptr)[5];
attribué l'adresse d'un tableau de char.
char arr[5] = {'a','b','c','d','e'};
ptr = &arr;
à l'aide du pointeur ptr puis-je accéder à la char valeurs dans ce tableau?
printf("\nvalue:%c", *(ptr+0));
Il n'imprime pas la valeur.
Dans ma compréhension ptr va contenir l'adresse de base du tableau mais c'est en fait le point de la mémoire requise pour l'ensemble de la gamme (j'.e 5 caractères). Ainsi, lorsque le pointeur est incrémenté il se déplace en avant par sizeof(char)*5
octets. Donc, il n'est pas possible d'accéder aux valeurs du tableau à l'aide de ce pointeur de tableau?
source d'informationauteur Pravi
Vous devez vous connecter pour publier un commentaire.
Lorsque vous souhaitez accéder à un élément, vous devez d'abord déréférencer le pointeur de la souris, puis l'indice de l'élément que vous voulez (ce qui est aussi dereferncing). c'est à dire que vous devez faire:
printf("\nvalue:%c", (*ptr)[0]);
, qui est le même que*((*ptr)+0)
Remarque que le travail avec le pointeur de tableaux ne sont pas très commun dans C. au lieu de cela, il suffit d'utiliser un pointeur vers le premier élément dans un tableau, et soit régler la longueur comme un élément séparé, ou de placer un senitel valeur à la fin de la matrice, de sorte que l'on peut apprendre lorsque le tableau se termine, par exemple,
La plupart des répondants ne semblent même pas savoir ce qu'est un tableau de pointeur est...
Le problème est que vous ne pointeur de l'arithmétique avec un tableau de pointeur ptr + 1 signifie "sautez 5 octets de l'avant depuis ptr points au 5 tableau d'octets".
Faire comme ceci à la place:
Prendre le contenu de ce que le pointeur sur le tableau de points et vous obtenez un tableau. Donc, c'est comme une aiguille dans C.
Vous devez créer ptr comme suit:
Vous avez créé ptr comme un tableau de pointeurs de caractères. Le ci-dessus crée un seul pointeur vers un char.
Edit: compléter le code devrait être:
Utilisation de pointeur avant de tableau de caractères
Normalement, tableau de Caractères est utilisé pour stocker les éléments dans il je.e 1 octet de chaque
par exemple:
nous ne pouvons pas stocker plusieurs de valeur en elle.
par l'utilisation d'un curseur avant le tableau de caractères, nous pouvons stocker les multiples dimensions des éléments d'un tableau dans le tableau
c'est à dire