Új hozzászólás Aktív témák

  • Tankblock

    aktív tag

    válasz Janos250 #13379 üzenetére

    Szia,

    Annyit pontosítanák, hogy a "C string" jelen esetben egy constans char tömb.

    const char[4]
    lesz. Ami fordítási időben kerül lefoglalásra. Erre próbált meg a kolléga castolni egy String osztályt, és ezért kapott null pointert.

    Az Arduino String osztály létrehozásakor a const char * ból egy a String osztályban lévő tárolóba másolódik a tömb tartalma.

    String::String( const char *value ){  
    if ( value == NULL )    value = "";  
    getBuffer( _length = strlen( value ) );  
    if ( _buffer != NULL )    
    strcpy( _buffer, value );
    }

    van = operátor, a definíció szerint az csak String osztályt képes String osztályal hasonlítani.const String & String::operator=( const String &rhs ){  if ( this == &rhs )    return *this;  if ( rhs._length > _length )  {    free(_buffer);    getBuffer( rhs._length );  }    if ( _buffer != NULL ) {    _length = rhs._length;    strcpy( _buffer, rhs._buffer );  }  return *this;}

    Forrás : [link]

    Jó feladat operátor overload megírása const char * ra :DD

    Szerk: code szétcsúszott.

Új hozzászólás Aktív témák

Hirdetés