Gamestudio Links
Zorro Links
Newest Posts
Z9 getting Error 058
by k_ivan. 04/25/26 19:13
ZorroGPT
by TipmyPip. 04/25/26 16:09
Stooq now requires an API key
by jcl. 04/13/26 09:42
Strange "Alien" Skull created with >Knubber<
by NeoDumont. 04/10/26 18:58
400 free seamless texture pack downl. here !
by NeoDumont. 04/08/26 19:55
AUM Magazine
Latest Screens
Dorifto samurai
Shadow 2
Rocker`s Revenge
Stug 3 Stormartillery
Who's Online Now
1 registered members (alibaba), 3,864 guests, and 8 spiders.
Key: Admin, Global Mod, Mod
Newest Members
valino, juergenwue, VladMak, Geir, ondrej
19209 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
safer ptr_remove function #299459
11/24/09 07:31
11/24/09 07:31
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline OP
Serious User
pegamode  Offline OP
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
Hi,

I'd like to have a safer ptr_remove function, so I wrote this code:

Code:
void _ptr_remove(void* ptr) {
	if (ptr != NULL) { 		
		ptr_remove(ptr);
		ptr = NULL;
	}
}



Is this the right way to do this?

I'd prefer this as a makro, but the following code gives me a syntax error:

Code:
#define _ptr_remove(ptr) if(ptr) { ptr_remove(ptr); ptr=NULL; }



Is there any chance to get it defined as a makro?

Regards,
Pegamode.

Re: safer ptr_remove function [Re: pegamode] #299460
11/24/09 07:36
11/24/09 07:36
Joined: Oct 2007
Posts: 5,211
İstanbul, Turkey
Quad Online
Senior Expert
Quad  Online
Senior Expert

Joined: Oct 2007
Posts: 5,211
İstanbul, Turkey
#define ptr_kill(ptr) if(ptr) ptr_remove(ptr); ptr=NULL
that should do it.

btw, why do you need to do that? if you pass a null pointer to ptr_remove nothing happens?


Last edited by Quadraxas; 11/24/09 07:39.

3333333333
Re: safer ptr_remove function [Re: Quad] #299463
11/24/09 07:48
11/24/09 07:48
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline OP
Serious User
pegamode  Offline OP
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
I'd like to have a way to check if the pointer was already removed.

The following code would crash:

Code:
ptr_remove(ptr);
    ptr_remove(ptr);



Re: safer ptr_remove function [Re: pegamode] #299465
11/24/09 07:52
11/24/09 07:52
Joined: Jul 2000
Posts: 28,094
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 28,094
Frankfurt
The best way is a macro. If you want to use a function, it must look like this:

void _ptr_remove(void** ptr) {
if (*ptr) {
ptr_remove(*ptr);
*ptr = NULL;
}
}

...
_ptr_remove(&ptr);
...

Re: safer ptr_remove function [Re: jcl] #299470
11/24/09 07:56
11/24/09 07:56
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline OP
Serious User
pegamode  Offline OP
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
I'd prefer a makro, too.

Is the code Quadraxas postet ok?

Code:
#define ptr_kill(ptr) if(ptr) ptr_remove(ptr); ptr=NULL



Re: safer ptr_remove function [Re: pegamode] #299473
11/24/09 08:40
11/24/09 08:40
Joined: Jul 2000
Posts: 28,094
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 28,094
Frankfurt
Yes, but you don't even need the if part.

#define ptr_kill(ptr) ptr_remove(ptr); ptr=NULL

Re: safer ptr_remove function [Re: jcl] #299474
11/24/09 08:51
11/24/09 08:51
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline OP
Serious User
pegamode  Offline OP
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
Ok ... thanks for your replies.

Regards,
Pegamode.


Moderated by  old_bill, Tobias 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1