cast safe

G

grahamo

Doh,

In my last mail I meant the function atoi instead of sprintf... and I
also meant to use an int instead of an unsigned int.........

this is the approach I mean , ignore the other email...sorry :(


unsigned char* data = foo();
int result = atoi((char*)data)


Is that correct? Assuming new c++ style casts are used, is the above
right or completely erroneous.


Cheers

Graham


From: (e-mail address removed) (grahamo)
Newsgroups: comp.lang.c++
Subject: cast safe

NNTP-Posting-Host: 194.206.100.24
Message-ID: <[email protected]>

Hi,

i know I should use the new style casts and I intend to however I
would like to know how I go about this;

I have an unsigned char* that a 3rd party API returned to me. The API
reads text from a file and gives me that test as an unsigned char*.
For the sake of this example the text string is "100"

unsigned char* data = foo();

I need to get this into an unsigned int, which is what it ultimately
should be however I'm not sure of the best approach. I can cast it to
a char* and then use sprintf(result, "%d", arg) but I'm not sure if
thats the best approach.

What's the *correct* way to achieve it... in terms of code correctness
and "correct approach".

Thanks much for any info (as usual:)

GrahamO
 
V

Victor Bazarov

grahamo said:
[...]
this is the approach I mean , ignore the other email...sorry :(


unsigned char* data = foo();
int result = atoi((char*)data)


Is that correct? Assuming new c++ style casts are used, is the above
right or completely erroneous.

It's commonly used, but it's not the best way, and often is unacceptable.
'atoi' has no way to report an error. You always get 0 whether it really
was "0" or it was something that couldn't be converted. Use 'strtol'.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,780
Messages
2,569,608
Members
45,252
Latest member
MeredithPl

Latest Threads

Top