Ciao a tutti,
ho questo tipo di problema:

codice:
 N=1;
 while (recv (sd,BufferIn,N,0))
  {
   if (strcmp(BufferIn,"\n")==0)
    {
     Nn=strlen(AppoStr);                                                           
     PageIn[i]=new char [ Nn + 1 ] ;
     PageIn[i]=AppoStr;

     printf ("AppoStr= %s\nLen=%d\ni=%d\n",AppoStr,Nn,i);                                
     printf ("............................\n");
     printf ("PageIn[%d]=%s\n",i,PageIn[i]);     
     printf ("********************************\n"); 
     printf ("PageIn[0]=%s\n",PageIn[0]);
     printf ("PageIn[1]=%s",PageIn[1]);
     printf ("\n--------------------------------\n");
     i++;
     AppoStr[0]='\0';
    }
   else
    strcat(AppoStr,BufferIn);
  }
Da una connessione tcp prendo i dati (
codice:
while (recv (sd,BufferIn,N,0))
)
ed aggiungo i singoli carattere in AppoStr, fino a quando non trovo \n.
codice:
  char *PageIn[3048];
A questo punto definisco lo spazio necessario per contenere la stringa AppoStr nell'iesima posizione di PageIn.
Nell'output di debug ho questo:

*************************
AppoStr= HTTP/1.1 401 Unauthorized
Len=26
i=0
............................
PageIn[0]=HTTP/1.1 401 Unauthorized
********************************
PageIn[0]=HTTP/1.1 401 Unauthorized
PageIn[1]=(null)
--------------------------------
AppoStr= Server:
Len=9
i=1
............................
PageIn[1]=Server:
********************************
PageIn[0]=Server:
PageIn[1]=Server:
--------------------------------
AppoStr= Date: Thu, 13 Aug 2009 07:51:27 GMT
Len=36
i=2
............................
PageIn[2]=Date: Thu, 13 Aug 2009 07:51:27 GMT
********************************
PageIn[0]=Date: Thu, 13 Aug 2009 07:51:27 GMT
PageIn[1]=Date: Thu, 13 Aug 2009 07:51:27 GMT
--------------------------------
AppoStr= WWW-Authenticate: Basic realm="ADSL Router (ANNEX A)"
Len=54
i=3
............................
PageIn[3]=WWW-Authenticate: Basic realm="ADSL Router (ANNEX A)"
********************************
PageIn[0]=WWW-Authenticate: Basic realm="ADSL Router (ANNEX A)"
PageIn[1]=WWW-Authenticate: Basic realm="ADSL Router (ANNEX A)"
--------------------------------

Si evince che

Quando scrivo in PageIn[i] il valore di AppoStr viene regolarmente scritto (nell'output subito dopo la riga di punti (............)
Il problema è che vengono modificati anche l'altri elementi dell'array.

Cosa è che mi sfugge ?

Grazie