En passant char tableau par référence

Je suis de passage d'un char tableau par référence, mais lorsque je serai de retour à partir de la fonction et imprimer le tableau, il n'affiche rien. Ce que je fais mal?

#include <iostream>

using namespace std;

void func(char []);
int main()
{
   char a[100];
   func(a);

   cout << a<<endl;
   return 0;
}

void func(char *array)
{
   array="Inserting data in array a";
   cout << array<<endl;
}

Ce qui concerne

Où voulez-vous insérer les données dans le tableau? Pouvez-vous montrer que le code?
Y êtes-vous la création d'un tableau de 100 char et le stockage de seulement 1 char...voulez-vous stocker de multiples char
assurez-vous de connaître les points suivants avant de lire les réponses. 1. " a " est une adresse.vous êtes de la copie en "tableau".Chaque chose est très bien jusqu'à maintenant. 2."Insertion de données dans le tableau" cette chaîne donne une adresse.Dans le func() fonction que vous écrasez 'array' avec cette adresse.
Non, 'a' n'est pas une adresse. 'a' est un tableau de 100 caractères. Il peut, dans de nombreuses situations, être implicitement converti en un pointeur. Mais il n'est pas un pointeur lui-même.
Non, 'a' est toujours un tableau de caractères dans ce cas. 12 caractères pour être exact (null-terminateur est implicite). Un littéral de chaîne, comme "hello world", est aussi un tableau de char en fait. Mais c'est un tableau qui existe dans la mémoire en lecture seule. Si vous ne pouvez pas le modifier. Lorsque vous faites cela: char a[] = "hello world"; -- Le tableau "hello world", qui réside dans la mémoire en lecture seule, est copié dans le local char array 'un'. Donc non, un littéral de chaîne ne donnent pas toujours un pointeur. Il le fait dans les mêmes endroits que d'un tableau, parce que c'est un tableau.

OriginalL'auteur Naruto | 2012-10-20