Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Pointer Bug?
#1
The following indexing code crashes (can't read memory error):
Code:
Type Vert
     x As Single
     y As Single
     z As Single
End Type

Type Tri
     verts(2) As Vert
End Type

Type Object
     numoftris As Integer
     tris As Tri Ptr
End Type

Dim obj As Object

With obj
     .numoftris = 7
     .tris = Allocate(.numoftris * Len(Tri))
     For i = 0 To .numoftris
        For v = 0 To 2
            .tris[i].verts(v).x = Rnd * 23
            .tris[i].verts(v).y = Rnd * 75
            .tris[i].verts(v).z = Rnd * 51
        Next v
     Next i
End With

Print obj.numoftris, obj.tris[0].verts(0).y '<- Error here


Sleep

But doesn't with a minor change to print the values as they're being set:

Code:
Type Vert
     x As Single
     y As Single
     z As Single
End Type

Type Tri
     verts(2) As Vert
End Type

Type Object
     numoftris As Integer
     tris As Tri Ptr
End Type

Dim obj As Object

With obj
     .numoftris = 7
     .tris = Allocate(.numoftris * Len(Tri))
     For i = 0 To .numoftris
        For v = 0 To 2
            .tris[i].verts(v).x = Rnd * 23
            .tris[i].verts(v).y = Rnd * 75
            .tris[i].verts(v).z = Rnd * 51
            Print .tris[i].verts(v).x  '<- Change
        Next v
     Next i
End With

Print obj.numoftris, obj.tris[0].verts(0).y '<- Reads fine with print in loop


Sleep

What's wrong? :o
Reply


Messages In This Thread
Pointer Bug? - by lkd85 - 02-22-2005, 07:36 PM
Pointer Bug? - by steven_basic - 02-22-2005, 08:41 PM
Pointer Bug? - by v3cz0r - 02-22-2005, 08:42 PM
Pointer Bug? - by lkd85 - 02-22-2005, 11:41 PM
Pointer Bug? - by lkd85 - 02-23-2005, 12:06 AM
Pointer Bug? - by v3cz0r - 02-23-2005, 12:59 AM
Pointer Bug? - by lkd85 - 02-23-2005, 01:52 AM

Forum Jump:


Users browsing this thread: 1 Guest(s)