Hi Vipin - You're doubly dereferencing IdealFMCW. I think your code should read:{{{ *Tx1 = *Tx1 + (IdealFMCW[tapIdx]) * (*hTx1); }}} because the [tapIdx] already dereferences the gr_complex* (IdealFMCW) to be just gr_complex. The error provided by your compiler isn't very helpful. Clang's error reads:{{{ error: indirection requires pointer operand ('gr_complex' (aka 'complex<float>') invalid)}}} which at least gives a clue about the extra dereference but it's great either. Hope this helps! - MLD On Fri, Jun 9, 2017, at 01:57 AM, Vipin Sharma wrote: > I have a custom block with some input streams being declared as > gr_complex type as shown here:> > *Control_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 *hTx1 = (const gr_complex *) input_items[0];*> * > const gr_complex *hTx2 = (const gr_complex *) input_items[1];*> * const > gr_complex *IdealFMCW = (const gr_complex *) > input_items[2];*> > Later on I use IdealFMCW as follows: > > * for(tapIdx=0; tapIdx<TapSize; tapIdx++) {* > * *Tx1 = *Tx1 + *(IdealFMCW[tapIdx]) * (*hTx1); * > > When I do make, I get compile errors: > > *error: no match for ‘operator*’ (operand type is ‘const gr_complex > {aka const std::complex<float>}’)*> * *Tx1 = *Tx1 + > *(IdealFMCW[tapIdx]) * (*hTx1); * > > I am simply trying to de-reference the pointer (defined by > IdealFMCW[tapIdx]) and use the value. What am I not doing right?
_______________________________________________ Discuss-gnuradio mailing list Discuss-gnuradio@gnu.org https://lists.gnu.org/mailman/listinfo/discuss-gnuradio