开发者

Const unsigned char* to char*

So, I have two types at the moment:

const unsigned char* unencrypted_data_char;
string unencrypted_data;

I'm attempting to perform a simple conversion of data from one to the other (string -> const unsigned char*)

As a result, I have the following:

strcpy((unencrypted_data_char),(unencrypted_data.c_str()));

However, I'm receiving the error:

error C2664: 'strcpy' : cannot convert parameter 1 from 'const unsigned char *' to 'char *'

Any advice? I thought using reinterpret_cast would help开发者_Python百科, but it doesn't seem to make a difference.


You can't write to a const char *, because each char pointed to is const.

strcpy writes to the first argument. Hence the error.

Don't make unencrypted_data_char const, if you plan on writing to it (and make sure you've allocated enough space for it!)

And beware of strcpy's limitations. Make sure you know how big your buffer needs to be in advance, because strcpy doesn't stop 'til it gets enough :)


well if unencrypted_data_char point to a memory that is only readable,you'd better not to write any data on it,it will certainly cause a segment fault.

e.g:

    const char *a="abc";

a pointed to a readable only memory

if unencrypted_data_char is const only because you let it be(like const char* a=b),well you could use const_cast< char* >(a) to conver it.

if converting from const char* to unsigned char*.

1.you need convert from const char* to char*.use const_cast.

2.conver from char* to unsigned char*. use reinterpret_cast.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜