How to move data from char** to char* ?

I have a function "func_a" that returns me a pointer to some data as follows:

extern void func_a(char **data);

char *mydata ;
func_a(&mydata);

extern void func_b(char *data);

How do I pass in the data "mydata" that is returned by "func_a" into "func_b"  correctly?
Can I use sizeof(mydata) to get the size of data being returned?

pcssecureAsked:
Who is Participating?
 
sunnycoderConnect With a Mentor Commented:
Hi pcssecure,
> How do I pass in the data "mydata" that is returned by "func_a" into "func_b"  correctly?
The return type of func_a is void !!! Perhaps the return value is being set in the function using char ** ... is that correct ?

If yes, then func_b(mydata) should suffice for calling with updated value

Sunnycoder
0
 
sunnycoderCommented:
pcssecure,

sizeof(mydata) will evaluate to sizeof(char *) which will be constant irrespective of what the value held in the pointer is ... If it is a string, you can use strlen() to determine the length of the data ... If it is binary data, then you will have to use a separate integer value (returned from func_a) to keep track of the length

Sunnycoder
0
 
pcssecureAuthor Commented:
yes, the return value is being set in the function char**.
The data concerned is binary.  I guess returning an integer value to keep track of length is the only way to get the size of binary data.
Thanks.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.