salve,ho ripreso in mano il codice e ho visto che il problema era che allocavo la memoria
solo per il primo elemento del vector
ho inserito tutto in un ciclo For cosi 'da allocare memoria ad ogni elemento,inoltre nelle New ho aumentato di uno la richiesta di memoria e adesso funziona.
un saluto.
codice:void ReadServices(void) { vector<un_servizio>unSer; vector<un_servizio>::iterator itSer; un_servizio servizioCorrente; un_servizio service; service.dwStateCurrent = 0; service.lpNameService =L"pippo"; service.lpNameDisplay =L"paperino"; for(int c = 0;c <=2; c++) { size_t size_name = _tcslen(service.lpNameService); servizioCorrente.lpNameService = new TCHAR[_tcslen(service.lpNameService)+1]; _tcscpy(servizioCorrente.lpNameService,service.lpNameService); servizioCorrente.lpNameService[size_name] = NULL; servizioCorrente.lpNameDisplay = new TCHAR[_tcslen(service.lpNameDisplay)+1]; _tcscpy(servizioCorrente.lpNameDisplay,service.lpNameDisplay); servizioCorrente.dwStateCurrent = 2+c; unSer.push_back(servizioCorrente); } for (itSer = unSer.begin(); itSer != unSer.end(); itSer ++) { wcout << itSer->lpNameService << endl; wcout << itSer->lpNameDisplay << endl; cout << itSer->dwStateCurrent; } itSer = unSer.begin(); for (; itSer != unSer.end(); itSer ++) { delete itSer->lpNameService; delete itSer->lpNameDisplay; } unSer.clear(); }

Rispondi quotando