[Gambas-user] Tests against pointers in Gambas3
Demosthenes Koptsis
demosthenesk at ...626...
Fri Jan 14 12:42:48 CET 2011
hello again list,
i am finishing the chapter of pointers soon.
Something last about them.
In C++ books it is suggested after the usage of a pointer to free it and
then assign value 0.
Do you think this advice could be done to Gambas3 like this for safe
programming?
Close #hMemory
Free(pPointer)
pPointer = 0
-----Example ---------------------------------
' Gambas module file
Public Sub Main()
Dim pPointer As Pointer
Dim hMemory As Stream
pPointer = Alloc(4)
Print pPointer
hMemory = Memory pPointer For Read Write
Write #hMemory, CByte(0) As Byte
Write #hMemory, CByte(1) As Byte
Write #hMemory, CByte(0) As Byte
Write #hMemory, CByte(1) As Byte
Close #hMemory
Free(pPointer)
pPointer = 0
Print pPointer
Print Byte@(pPointer)
End
-----Example ---------------------------------
Notice with this implementation the last line
Print Byte@(pPointer)
raises an expected error.
Otherwise we still could use the address of pPointer.
On Wed, 2011-01-12 at 17:31 +0100, tobias wrote:
> hi,
>
> > Hi,
> >
> > i study the cases of pointers and i found at this page
> > http://www.yolinux.com/TUTORIALS/C++MemoryCorruptionAndMemoryLeaks.html
> >
> > cases of program crashes from bad usage of pointers.
> >
> > i made a test for
> > Attempting to write to memory already freed.
> >
> > ...
> >
> > in this example i free the pointer and then try to write to it.
> > The result is that i can write and read normally after Free(pPointer)
> >
> > Is this ok?
> >
>
> i noticed the same thing some time ago with a c program. this hasn't to
> be a bug in gambas... i think this is just as jussi said:
> > Seems that Gambas still owns that address, but it is not "protected"
> anymore
>
> ------------------------------------------------------------------------------
> Protect Your Site and Customers from Malware Attacks
> Learn about various malware tactics and how to avoid them. Understand
> malware threats, the impact they can have on your business, and how you
> can protect your company and customers by using code signing.
> http://p.sf.net/sfu/oracle-sfdevnl
> _______________________________________________
> Gambas-user mailing list
> Gambas-user at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/gambas-user
--
Regards,
Demosthenes Koptsis.
More information about the User
mailing list