J'ai écrit un petit programme de test pour voir comment je peux passer un pointeur vers un tableau char à une fonction. Ceci est mon code:en passant un pointeur sur un tableau char dans c
#include <stdio.h>
#include <string.h>
int scopy(char *org){
printf("the value of org is %s" , org);
printf("\n");
}
int main(void)
{
char original[11];
strcpy(original , "helloworld");
scopy(original);
printf("the value of original now is %s" , original);
return 0;
}
Ma connaissance de pointeurs me dit que org est un pointeur qui est transmis l'adresse de la mémoire de l'original [0], quand j'exécute ce programme, je remarque quelques petites choses qui m'a confus et m'a fait douter des faits que j'ai appris sur les pointeurs.
Lorsque j'imprime org je récupère le mot complet. mais selon la logique si les pointeurs ne sont pas censés imprimer l'adresse mémoire;
lorsque je tente imprimer sur [1], sur [2], CodePad me dit que le processus est terminé anormalement
Mon doute de base à cette question est que fait org exactement, je comprends est char pointeur pointant vers une adresse mémoire (qui ??). Toute aide serait appréciée . Je suis très nouveau à la programmation c.
Aussi lorsque je tente une boucle while comme
while(out[i] !='\0')
printf("%s",out[i]);
ne se termine pas au '\ 0'. La documentation strcpy indique que le '\ 0' est copié dans le tableau char.