Skocz do zawartości

  • Zaloguj korzystając z Facebooka Zaloguj korzystając z Twittera Zaloguj przez Steam Zaloguj poprzez Google      Logowanie »   
  • Rejestracja

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.

  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Przekazanie tablicy do funkcji a potem jej zwrócenie.


Najlepsza odpowiedź R3X, 20.07.2014 11:36

To działa tak jak przekazanie parametru przez wskaźnik w cpp. Funkcja addSomeNoise nie otrzyma kopii tekstu "Hello John", ale dokładnie ten sam adres pamięci w którym przechowywany jest ten tekst w funkcji plugin_init(). Obie funkcje operują więc na dokładnie tym samym stringu.

public plugin_init() {
    new szMyAwesomeText[256];
    formatex(szMyAwesomeText, charsmax(szMyAwesomeText), "Hello %s", "John");
    log_amx("%s", szMyAwesomeText); //Hello John
 
    addSomeNoise(szMyAwesomeText, charsmax(szMyAwesomeText));
    log_amx("%s", szMyAwesomeText); //Hello John!!!
}
 
addSomeNoise( szText[], size )
{
    add(szText, size, "!!!");
}

Nie zawsze jest to pożądane, dlatego można zabezpieczyć przekazane tablice przed zapisem przez użycie słowa kluczowego const

public plugin_init() {
    new szMyAwesomeText[256];
    formatex(szMyAwesomeText, charsmax(szMyAwesomeText), "Hello %s", "John");
    log_amx("%s", szMyAwesomeText); //Hello John
 
    addSomeNoise(szMyAwesomeText, charsmax(szMyAwesomeText));
    log_amx("%s", szMyAwesomeText); //Hello John!!!
}
 
addSomeNoise( const szText[], size )
{
    //Błąd kompilacji
    add(szText, size, "!!!");
}
Przejdź do postu


  • Zamknięty Temat jest zamknięty
7 odpowiedzi w tym temacie

#1 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 19.07.2014 20:33

Witam.

Mam taki kod:

inna funkcja()
{
     new info[256];
     formatex(info, charsmax(info), "Runda: %i^nTT %i:%i CT^n", roundnumber + 1, TTwin, CTwin)

     Zakoncz() //wywołanie TU POTRZEBUJE PRZESLAC
}
Zakoncz()
{
      new dane[64];
      formatex(dane, charsmax(dane), "Koniec w %i rundzie", roundnumber)
     // add(info, charsmax(info), dane, charsmax(dane))// JAKOS DODAC DO TEJ TABLICY

      //POTRZEBUJE ABY INFO SIE USTAWILO NA TO CO TU ZROBIE
}

Jak to zrobić? Czytałem o referencji itp. ale nie mam doświadczenia jeszcze. Proszę o podpoiwedź :)


  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#2 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 625
Wszechmogący

  • Postów:1510
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 19.07.2014 21:20

Zakoncz(info[256])
O to Ci chodzi?
  • +
  • -
  • 0

#3 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 20.07.2014 06:44

Takie coś ale chce operować na tej tablicy w pierwszej funkcji. Pobranie i zwrocenie. Albo operowanie na jednej i tej samej. Cos jak wskaznik w cpp
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#4 MAGNET

    SourceLearned ;)

  • Moderator

Reputacja: 625
Wszechmogący

  • Postów:1510
  • GG:
  • Imię:Olek
  • Lokalizacja:Dalekoo
Offline

Napisano 20.07.2014 08:18

To zrob globalną I tyle
  • +
  • -
  • 0

#5 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 20.07.2014 08:29

Jak bym chciał to bym zrobił. To nie jest rozwiązanie o które prosiłem.
Nie ma w PAWN'ie wskaźników co nie?
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#6 GwynBleidD

    Godlike

  • Administrator

Reputacja: 1849
Godlike

  • Postów:3066
  • Steam:steam
  • Lokalizacja:Przemyśl
Offline

Napisano 20.07.2014 09:23

KAŻDA tablica zwracana jest przez wskaźnik...

Więc gdy na niej sobie pooperujesz to się zmieni w obu funkcjach.
  • +
  • -
  • 0
NIE pomagam na PW. Nie trudź się, na zlecenia nie odpiszę... Od pomagania jest forum.
NIE zaglądam w tematy wysłane na PW. Jeśli są na forum to prędzej czy później je przeczytam. Jeśli mam co w nich odpisać, to odpiszę.
 
1988650.png?theme=dark

#7 TibacK

    Diler pod gimnazjum dla niepełnosprawnych dzieci

  • Autor tematu
  • Power User

Reputacja: 466
Wszechobecny

  • Postów:2448
Offline

Napisano 20.07.2014 10:58

Hmm. Jak to zrobic? Bo nie rozumiem. Jak przesle ją do funkcji Zakoncz to ona się sama zwróci? Nie czaje tego.
  • +
  • -
  • 0

Sprzedam Paczkę CoD pod CS 1.6 (JEST WIELE WERSJI DO WYBORU TEJ PACZKI) na lvl od 201 - 601

Silnik (8 nowych statystyk, poprawiony zapis, dodatkowy exp, pozbyto się CurWeapon). Ponad 100 perków (do wyboru do koloru). Sklep, NOWE MISJE (QUESTY), premium i super premium, AUKCJE, KLANY, zapis nVault, 4 zestawy modeli bronii do wyboru!

JESTEŚ ZAINTERESOWANY KUPNEM? NAPISZ WIADOMOŚĆ DO MNIE!


#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2960
Godlike

  • Postów:4247
  • Lokalizacja:Nie
Offline

Napisano 20.07.2014 11:36   Najlepsza odpowiedź

To działa tak jak przekazanie parametru przez wskaźnik w cpp. Funkcja addSomeNoise nie otrzyma kopii tekstu "Hello John", ale dokładnie ten sam adres pamięci w którym przechowywany jest ten tekst w funkcji plugin_init(). Obie funkcje operują więc na dokładnie tym samym stringu.

public plugin_init() {
    new szMyAwesomeText[256];
    formatex(szMyAwesomeText, charsmax(szMyAwesomeText), "Hello %s", "John");
    log_amx("%s", szMyAwesomeText); //Hello John
 
    addSomeNoise(szMyAwesomeText, charsmax(szMyAwesomeText));
    log_amx("%s", szMyAwesomeText); //Hello John!!!
}
 
addSomeNoise( szText[], size )
{
    add(szText, size, "!!!");
}

Nie zawsze jest to pożądane, dlatego można zabezpieczyć przekazane tablice przed zapisem przez użycie słowa kluczowego const

public plugin_init() {
    new szMyAwesomeText[256];
    formatex(szMyAwesomeText, charsmax(szMyAwesomeText), "Hello %s", "John");
    log_amx("%s", szMyAwesomeText); //Hello John
 
    addSomeNoise(szMyAwesomeText, charsmax(szMyAwesomeText));
    log_amx("%s", szMyAwesomeText); //Hello John!!!
}
 
addSomeNoise( const szText[], size )
{
    //Błąd kompilacji
    add(szText, size, "!!!");
}

  • +
  • -
  • 3




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych