Home > Mobile >  c double pointer? I don't know how to pronounce it
c double pointer? I don't know how to pronounce it

Time:10-29

void* SendMsg(void* msg) {
    char *result;
    char tmpBuf[1000]={0};
    message send_msg =*(message*)msg;//?

The problem is * and (*)type.

*(message*)"parameterName";

how I can search it? what is that?

"message" is custom made struct.

CodePudding user response:

The code is in C-style whwere a void pointer is passed to the function. To use it it is cast in C-style to message* and immediately dereferenced (in this case assigned to a local variable named send_msg).

This code in C is technically known as a red herring for possible issues.

In C , I would expect a base-class (interface) as parameter or a template parameter.

CodePudding user response:

(message*)msg says "pretend that msg is a pointer to an object of type message. message send_msg = *(message*)msg; says "pretend that msg is a pointer to an object of type message and copy the message object that it points at into send_msg. That will work fine if msg in fact points at an object of type message.

  • Related