# GNU Radio C++ Block Appends Zero Entries

**URL:** <https://www.ruby-forum.com/t/gnu-radio-c-block-appends-zero-entries/237490>\
**Category:** GNU Radio\
**Created:** [November 15, 2013, 7:34pm UTC](https://www.ruby-forum.com/t/gnu-radio-c-block-appends-zero-entries/237490 "2013-11-15T19:34:33Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Detlef\_R](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/58f4c7/32.png) [@Detlef\_R](https://www.ruby-forum.com/u/Detlef_R)\
**Post date:** [November 15, 2013, 7:34pm UTC](https://www.ruby-forum.com/t/gnu-radio-c-block-appends-zero-entries/237490/1 "2013-11-15T19:34:33Z")

</div>

Hi,

I have written a simple ‘general’ C++ block that takes some complex  
values from a file source and outputs ints to a file as binary.

I find that it adds a ‘0’ after every time the block is called, so if I  
have 10 input values in the file, then it runs using the first 8,  
outputs 8 values correctly and adds a 0, then runs using the last 2,  
outputs 2 values correctly and then adds a 0.

If anyone is interested or has experienced something similar, I will  
provide some code!

David

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [November 21, 2013, 5:49pm UTC](https://www.ruby-forum.com/t/gnu-radio-c-block-appends-zero-entries/237490/2 "2013-11-21T17:49:08Z")

</div>

Hi,

I have simplified my code; as below and attached. I include a simple  
flow graph too. Lots of 0’s are appended to the output file? I must be  
making a silly mistake?!

Thanks for any help!

Regards,

David

```
/*
 * The private constructor
 */
cip_vcic_impl::cip_vcic_impl(int v_len, int r_max, int l_max)
  : gr::block("cip_vcic",
          gr::io_signature::make(1, 1, sizeof(gr_complex)),
          gr::io_signature::make(1, 1, sizeof(gr_complex)))
{}

/*
 * Our virtual destructor.
 */
cip_vcic_impl::~cip_vcic_impl()
{
}

void
cip_vcic_impl::forecast (int noutput_items, gr_vector_int

```

&ninput\_items\_required)  
{  
ninput\_items\_required[0] = noutput\_items;  
}

```
int
cip_vcic_impl::general_work (int noutput_items,
                   gr_vector_int &ninput_items,
                   gr_vector_const_void_star &input_items,
                   gr_vector_void_star &output_items)
{
    const gr_complex *in = (const gr_complex *) input_items[0];
    gr_complex *out = (gr_complex *) output_items[0];

    // Copy input to output
    for(int item_idx = 0; item_idx < ninput_items[0]; item_idx++)
    {
        memcpy((void *) &out[item_idx], (void *) &in[item_idx],

```

sizeof(gr\_complex));  
produce(0, 1);  
}

```
    // Tell runtime system how many input items we consumed on
    // each input stream.
    consume_each (noutput_items);

    // Tell runtime system how many output items we produced.
    return noutput_items;
}
```

---

<div class="post-metadata">

**Author:** ![divotdave](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/bbe5ce/32.png) [@divotdave](https://www.ruby-forum.com/u/divotdave)\
**Post date:** [November 21, 2013, 6:39pm UTC](https://www.ruby-forum.com/t/gnu-radio-c-block-appends-zero-entries/237490/3 "2013-11-21T18:39:40Z")

</div>

p.s. clearly this takes in complex and puts out complex (not ints like  
my original code/explanation).
