←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Dla czego tak się dzieje

Zablokowany

  • +
  • -
pdr - zdjęcie pdr 03.05.2010

Po wywołaniu poniższego kodu

new adres[500] = "test.php?&users="
	 new ip[25]="11.11.11.111"

	 new user_search[32]
	 add(adres,sizeof(adres),ip,sizeof(ip))

	 user_search[1]=1

	 new odp[36]
     client_cmd(id,"echo [wartosc przed: %d]",user_search[1])
     formatex(odp,511, "GET /%s^n^n", adres);
     client_cmd(id,"echo [wartosc po: %d]",user_search[1])

Dostaje w konsoli info:

[wartosc przed: 1]
[wartosc po: 49]

czemu?
Odpowiedz

Seba - zdjęcie Seba 03.05.2010

Generalnie nie wkleiłeś całego kodu, bo to niemożliwe aby były inne wartości skoro nic nie zmieniasz z tą tablicą.
Odpowiedz

  • +
  • -
pdr - zdjęcie pdr 03.05.2010

Wkleiłem cały blok zawarty w funkcji którą wywołuję, i to co piszę jest możliwe, i z całą pewnością się tak dzieje, bo sprawdzałem to 10 razy.
Jak nie wierzysz to też sprawdź.

Działa tutaj jakiś wyciek pamięci, albo błąd kompilatora, ale nie jestem pewny, dla tego pytam.
Odpowiedz

  • +
  • -
G[o]Q - zdjęcie G[o]Q 03.05.2010

daj caly kod
Odpowiedz

  • +
  • -
Miczu - zdjęcie Miczu 03.05.2010

new odp[36]
formatex(odp,511, "GET /%s^n^n", adres);

podajesz zły rozmiar dla tablicy wyników... zmień na:
formatex(odp,35, "GET /%s^n^n", adres)

Ablo zmień odp[36] na odp[512]

Jeśli user_search w pamięci znajduje sie za odp to może nastąpić jego nadpisanie...

PS. 49 to w ascii znak '1' co by pasowało pod ip[25]="11.11.11.111"
Odpowiedz

  • +
  • -
pdr - zdjęcie pdr 05.05.2010

Sprawdziłem, i chyba o to właśnie chodziło.
Dzięki za pomoc.
Odpowiedz

Adminek AMXX.PL - zdjęcie Adminek AMXX.PL 05.05.2010

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Problem rozwiązany

Jeśli się z tym nie zgadzasz, Dołączona grafika raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
Odpowiedz
Zablokowany