2009/1/14 frano wrote:

>
> I have the following code:
>
> struct unit_struct {
>    unsigend char *version[LEN];
>    ULONG board_id;
>    unsigned char *unit[LEN];
> };
>
>
> const unsigned long ud_brd_id = units_data->board_id;
> XMLCh brd_id[100];
> XMLSize_t maxchars = sizeof(units_data->board_id);
> const unsigned int rad = 10;
> try {
>    XMLString::binToText(ud_brd_id, brd_id, maxchars, rad);
> } catch (const XMLException& exc) {
>    cout << " Got exception \n";
>    char *exc_msg = XMLString::transcode(exc.getMessage());
>    cout << "Exception msg is " << exc_msg << "\n";
> }
>
>
> When the code is executed I get a segmentation fault on the
> XMLString::binToText call......
>
> Any ideas of what I am doing wrong ?
>
> Fran
>

You specify to the "binToText" function that the maximum number of
characters the resulting string should be represented on is sizeof(ULONG) -
which I assume is 4 or whatever number of bytes your system represents
unsigned long on.

I guess the number stored in "board_id" is represented on more digits than
that, and it doesn't fit.

Reply via email to