C++ vektor olvasás/írás mutatóval

Címkék
C++ vektor olvasás/írás mutatóval
2022-02-25T15:18:26+01:00
2022-02-28T19:49:13+01:00
2022-10-15T21:21:01+02:00
minicooper
Udv,

Miért van az hogy ha olvasok egy elemet vektorból az alábbi módon akkor sikerul ki olvasnom de módosítani/írni nemtudom, ha megpróbálom nem csinal semmit a program (megáll/osszeomlik) nem irja ki az "IF2-t"

void add(vector <unsigned char> *pva,vector <unsigned char> *pvb,vector <unsigned char> *pvr) { vector <unsigned char> &va=*pva; vector <unsigned char> &vb=*pvb; vector <unsigned char> &vc=*pvr; unsigned short ic; cout<<"Adding"<<endl; cout<<va[0]<<endl; for (int n=0; n < 1; n++) { cout<<va[n]<<endl; cout<<"For"<<endl; ic=va[n]+vb[n]; if(ic<255) { cout<<"If1"<<endl; vc[n]=ic; cout<<"If2"<<endl; //(pvv->at(n))=vc; }
Mutasd a teljes hozzászólást!
A pvr paraméterben átadott vector-nak van annyi eleme az add eljárás meghívása előtt, mint ahány eleme a pva/pvb-nek van?
Itt ugyanis nem elemet adsz hozzá, hanem elemet módosítasz a pvr-ben:

vc[n]=ic;
Cseréld le ezt például erre:

vc.push_back(ic);
És működni fog.
Mutasd a teljes hozzászólást!

Címkék
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd