Jag försöker som bäst på att lära mig skriva c++ , som start projekt så har jag valt att försöka skriva en cirkulär buffer, Dock så beter sig variablerna riktigt mysko just nu och jag förstår inte varför...
cirbuf.h
Kod: Markera allt
class Circ_buf{
private:
char b_buf[];
unsigned int b_pos;
unsigned int b_sta; // where is zero?
unsigned int b_size;
public:
Circ_buf(int llength);
bool buff_get(char *new_loc); // Memcpy the data to a new location
bool buff_add(int length,char *new_data); //add data to the buffer
int buff_size(void);
int buff_print(void);
};
Kod: Markera allt
Circ_buf::Circ_buf(int llength)
{
b_buf[llength];
b_pos =0;
b_sta = 0; //
b_size = llength;
}
bool Circ_buf::buff_add(int length,char *new_data)
{
int i =1;
cout<< "init add at pos "<<b_pos<<" size"<<b_size<<endl;
while ((i-1) < length)
{
printf("b_pos =%d \n",b_pos);
cout<< "add at pos " << b_pos <<" at i"<<i<<endl;
b_buf[b_pos] = new_data[i];
b_pos++;
i++;
}
}
Kod: Markera allt
char c[3];
char d[3];
c[0] ='1';
c[1] ='2';
c[2] ='\n';
Circ_buf cb = Circ_buf(10);
cb.buff_add(3,c);
Kod: Markera allt
init add at pos 0 size10
b_pos =0
add at pos 0 at i1
b_pos =51
add at pos 51 at i2
b_pos =52
add at pos 52 at i3
Visst är det så att raden "b_buf[llength];" reservear ett minnes utrymme för vektorn?
Tack för hjälpen!
-Oscar