PDA

Visualizza la versione completa : [c++]char* non si assegna


giuseppe500
13-02-2009, 17:03
ciao.
Ho questo codice:


const char* pSrc = pdomTexture->getTexture().cast()->getTexture();
char ch[4096] ;
char* pDest = ch;

do
{
if(*pSrc == '-')
{
if( strcmp(pSrc, "-sampler") == 0
|| strcmp(pSrc, "-surface") == 0)
{
break;
}
}

*pDest++ =*pSrc;
}
while (*(++pSrc) != '\0');

return pDest;

perchè non funziona?
questa riga:
*pDest++ =*pSrc;
non assegna niente!

in pDest alla fine del ciclo non c'è niente e in pSrc invece c'è una stringa corettamente.

KrOW
13-02-2009, 17:45
Hai provato con
*(pDest++) = *pSrc; ???

giuseppe500
13-02-2009, 17:54
provato , ma niente da fare!non va

KrOW
13-02-2009, 18:11
Puoi dire che dovresti fare con quella linea???

oregon
13-02-2009, 18:11
pDest viene variato nel ciclo tramite una ++ ...

giuseppe500
13-02-2009, 18:24
con qella linea voglio assegnare al carattere corrente di pDest il valore di pSrc e passare al carattere successivo.

oregon
13-02-2009, 18:27
Ok ... e quindi restituisci il puntatore al carattere successivo, che non e' stato scritto ...

E poi stai restituendo puntatori ad un vettore locale che all'uscita non esisterà piu' ... attenzione.

giuseppe500
13-02-2009, 18:41
grazie oregon , e come si puo' "aggiustare" la funzione?

KrOW
13-02-2009, 18:59
Se ho capito bene potresti risolvere cosí:


static char ch[4096];
. . .
(*pDest)++ = *pSrc;
. . .
return ch;

oregon
13-02-2009, 19:03
Sì ... oppure allochi dinamicamente ...

Loading