What would be a proper invalid value for a pointer?

前端 未结 7 586
抹茶落季
抹茶落季 2021-01-25 03:16

Suppose I have this code. Your basic \"if the caller doesn\'t provide a value, calculate value\" scenario.

void fun(const char* ptr = NULL)
{
   if (ptr==NULL) {         


        
7条回答
  •  轻奢々
    轻奢々 (楼主)
    2021-01-25 03:51

    Using overloaded versions of the same function for different input is best, but if you want to use a single function, you could make the parameter be a pointer-to-pointer instead:

    void fun(const char** ptr = NULL) 
    { 
       if (ptr==NULL) { 
          // calculate what ptr value should be 
       } 
       // now handle ptr normally 
    } 
    

    Then you can call it like this:

    fun();
    

    .

    char *ptr = ...; // can be NULL
    fun(&ptr);
    

提交回复
热议问题