[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Structures with byte arrays using fromstring cause segfault
[Thread Prev] | [Thread Next]
- Subject: Re: Structures with byte arrays using fromstring cause segfault
- From: Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx>
- Date: Mon, 20 May 2024 04:02:52 +0300
- To: user@xxxxxxxxxxxxxxxxxxxxxx
Here is your code corrected:
Public Struct demo
tag[100] As Byte
End Struct
Public dtag As Struct Demo
Public theString As String = "This is a test string tag"
Public Sub main()
dtag.tag.fromstring(theString)
Print "Tag="; dtag.tag.tostring()
For i As Integer = 0 To theString.len - 1
dtag.tag[i] = Asc(theString[i])
Next
dtag.tag[i + 1] = 0
Print "Tag="; dtag.tag.tostring()
End
However, the fromstring() function still does nothing.
Jussi
On Sun, May 19, 2024 at 11:36 PM Brian G <brian@xxxxxxxxxxxxxxxx> wrote:
> When Working with structures with byte arrays, the copy of a string to
> the byte array
> using fromstring() appears to corrupt memory
>
> But using the tostring() seems to work correctly.
>
> I have included a simple script to demonstrate the issue.
> The first line does a fromstring() and initially appears to do nothing.
>
> But the last line that frees the allocated memory causes a segfault
> sometimes.
>
> Removing the line doing the fromstring() makes everything ok on the free.
>
> Maybe I am using this in an incorrect way?
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> #!/usr/bin/env gbs3
>
> public struct demo
> tag[100] as byte
> end struct
>
> public dtag as demo = alloc(400)
> public theString as string = "This is a test string tag"
>
> public sub main()
> dtag.tag.fromstring(theString)
>
> print "Tag=";dtag.tag.tostring() ' prints nothing and in fact the
> content is not changed.
>
> for i as integer = 0 to theString.len-1
> dtag.tag[i] = asc(theString[i])
> next
> dtag.tag[i+1]=0
>
> print "Tag=";dtag.tag.tostring()
>
> free(varptr(dtag))
> end
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
> --
> ~~~~ Brian
>
>
| Re: Structures with byte arrays using fromstring cause segfault | Jussi Lahtinen <jussi.lahtinen@xxxxxxxxx> |
| Structures with byte arrays using fromstring cause segfault | Brian G <brian@xxxxxxxxxxxxxxxx> |