|
"Ciaran Jessup" <ciaranjessup@myrealbox.com> writes:
> Hi all, sorry if this is a rediculously trivial problem, but I'm having some
> problems with execi on legos0.2.5 , I can't seem to get g++ to compile when
> I use it, I pass it a 'correct' function.....like so :
>
> int controlThread(int argc, char **argv) { ....blla....blah..blah }
> defined earlier in file....
>
> execi(&controlThread, 0, NULL, 2, DEFAULT_STACK_SIZE);
>
> And it throws an error, saying :
>
> ANSI C++ forbids implicit conversion from `void *' in argument passing
In C you should call execi() like this:
execi(controlThread, 0, NULL, 2, DEFAULT_STACK_SIZE); /* Removed `&' */
since a function is like an array name: it is an address. Probably the same
applies to C++.
bye
Bernardo
|
|
Message has 1 Reply: | | Re: execi and C++
|
| (...) I've spoken too fast. Re-reading the error message I saw the real problem. "controlThread" or "&controlThread" are the same. You should add a cast: execi(&controlThread, 0, (char **)NULL, 2, DEFAULT_STACK_SIZE); NULL is defined mem.h as (...) (24 years ago, 18-Feb-01, to lugnet.robotics.rcx.legos)
|
Message is in Reply To:
| | execi and C++
|
| Hi all, sorry if this is a rediculously trivial problem, but I'm having some problems with execi on legos0.2.5 , I can't seem to get g++ to compile when I use it, I pass it a 'correct' function.....like so : int controlThread(int argc, char **argv) (...) (24 years ago, 19-Feb-01, to lugnet.robotics.rcx.legos)
|
3 Messages in This Thread:
- Entire Thread on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
This Message and its Replies on One Page:
- Nested:
All | Brief | Compact | Dots
Linear:
All | Brief | Compact
|
|
|
|