Link to home
Start Free TrialLog in
Avatar of naseeam
naseeamFlag for United States of America

asked on

How to fix assignment of 'ptr to const' to 'ptr' compile error?

typedef struct
{
    SRV_Ntrfc_t          const  *ntrfc;
} SRV_Cnfg_t;


MGR_MR_E   srv_main(  MGR_MC_E    cmd,
                                       MGR_Work_t  *cmw,
                                       MGR_Cnfg_t  *cmc,
                                       MGR_Srv_t   *srv ) {

    Work_t   *wp     = srv->work;
    SRV_Cnfg_t   *cp     = srv->cnfg;
    SRV_Ntrfc_t  *ntrfc  = cp->ntrfc
   ....

Above code was compiled with WindRiver diab 4.2b 'C' compiler without errors.  Compiling this program with WindRiver diab 5.8.0.0 'C' compiler produces the following error:

trying to assign 'ptr to const' to 'ptr'

How to fix this error without changing software functionality?  Maybe some kind of typecast may do it.
 
ASKER CERTIFIED SOLUTION
Avatar of JohnGaby
JohnGaby
Flag of Afghanistan image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Infinity08
A const_cast should really only be a last resort (when there's no other way), because it's an ugly construct. Since you have control over the source code, you don't need a const_cast.

Just add a const here :

        const SRV_Ntrfc_t  *ntrfc  = cp->ntrfc;

or remove the const here :

        typedef struct
        {
            SRV_Ntrfc_t            *ntrfc;
        } SRV_Cnfg_t;

depending on which makes more sense.