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
[A7.73.1] var* pointer bug? #261320
04/16/09 21:42
04/16/09 21:42
Joined: Mar 2006
Posts: 2,252
Hummel Offline OP
Expert
Hummel  Offline OP
Expert

Joined: Mar 2006
Posts: 2,252
Hi,
scheinbar gibt´s Probleme beim Übergeben der Adresse einer lokalen Variablen an eine Funktion:


#include <acknex.h>
#include <default.c>

STRING* debug_str1="0";

TEXT* debug_txt1=
{
string=debug_str1;
flags=VISIBLE;
}

void testfunc(int* r)
{
beep();
wait(-1);

*r = 1.0;
}

void main()
{
int test =0.0;
// int test[1] ={0.0};

testfunc(test);
// while(test[0] == 0.0){wait(1);}
while(test == 0.0){wait(1);}

str_for_num(debug_str1,test);
// str_for_num(debug_str1,test[0]);

beep();
beep();
}

Eigentlich sollte der Code 3 mal den Sound abspielen, macht er aber nicht (spielt nur einmal) - außer ich verwende anstatt der lokalen Variable ein eindimensionales Array (auskommentierte Variante) oder eine globale Variable, dann funzt alles wie es soll.

...oder mach ich trotz Absprache mit fachkundigem Personal etwas falsch?

MfG
Hummel

Re: [A7.73.1] var* pointer bug? [Re: Hummel] #261354
04/17/09 06:04
04/17/09 06:04
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline
Serious User
pegamode  Offline
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
Wenn ich mich nicht irre darfst du das wait(-1) in der Funktion testfunc nicht in der Art verwenden.
Soviel ich weiß darfst Du in einer Funktion, in die Du Pointer als Parameter übergibst kein wait() verwenden, bevor Du die übergebenen Pointer verwendet hast, da du durch das Multitasking ansonsten nicht mehr den richtigen Pointer in der Hand hast ...

Bitte korrigieren falls dies nicht stimmt.

Re: [A7.73.1] var* pointer bug? [Re: pegamode] #261355
04/17/09 06:06
04/17/09 06:06
Joined: Feb 2006
Posts: 1,011
Germany
pegamode Offline
Serious User
pegamode  Offline
Serious User

Joined: Feb 2006
Posts: 1,011
Germany
In der Anleitung findest Du auch folgenden Hinweis am wait-Befehl:

While the content of local variables is preserved, their addresses change after every wait() because the function runs every time in a different stack frame.

Re: [A7.73.1] var* pointer bug? [Re: pegamode] #261367
04/17/09 07:59
04/17/09 07:59
Joined: Jul 2000
Posts: 28,094
Frankfurt
jcl Offline

Chief Engineer
jcl  Offline

Chief Engineer

Joined: Jul 2000
Posts: 28,094
Frankfurt
This is one of the reasons why using pointers is sometimes difficult for beginners. Your code can not work this way, unless you declare "test" as "static". Non-static variables live on the stack only, and don't have a fixed address.

static int test =0.0;

Re: [A7.73.1] var* pointer bug? [Re: jcl] #261393
04/17/09 12:04
04/17/09 12:04
Joined: Mar 2006
Posts: 2,252
Hummel Offline OP
Expert
Hummel  Offline OP
Expert

Joined: Mar 2006
Posts: 2,252
ok-thx.


Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

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