Передача массива в функцию

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Mamoru
Posts: 45
Joined: 2005-07-10 11:26:37

Передача массива в функцию

Post by Mamoru »

Добрый день.
Прочитал в своё время в описании инжы следующее:
Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!!. Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом.
Сделал пару пробных скриптов, и... забыл нахрен!

Выручайте!
конструкция типа
sub main()
DIM mass[10]
...
funk(mass[1])
...
end sub

sub funk(mass[1])
mass[1]=5
...
end sub

Грубо говоря менял элемент массива mass изнутри функции
Начисто забыл синтаксис.
Помогите хлопцы, плз!
PCGamer
Posts: 125
Joined: 2005-08-12 03:04:00

Re: Передача массива в функцию

Post by PCGamer »

Mamoru wrote:Добрый день.
Прочитал в своё время в описании инжы следующее:
Массивы можно передавать в качестве параметров функциям. При этом передается САМ массив, а не его копия!!!. Т.е. все действия внутри функции над элементами массива будут производиться над первоначальным массивом.
Сделал пару пробных скриптов, и... забыл нахрен!

Выручайте!
конструкция типа
sub main()
DIM mass[10]
...
funk(mass[1])
...
end sub

sub funk(mass[1])
mass[1]=5
...
end sub

Грубо говоря менял элемент массива mass изнутри функции
Начисто забыл синтаксис.
Помогите хлопцы, плз!


Ты забыл написать чего ты хочешь и в чём загвоздка :D
I NEED HELP at viewtopic.php?t=4903
Mamoru
Posts: 45
Joined: 2005-07-10 11:26:37

Post by Mamoru »

нужно менять элемент массива, обьявленного в main
менять его внутри процедуры, вызываемой из main.
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Post by Sfagnum »

Mamoru wrote:нужно менять элемент массива, обьявленного в main
менять его внутри процедуры, вызываемой из main.
а что тебе собственно мешает его там менять? религия не позволяет? и синтаксис чего ты забыл?
Solaire
Posts: 163
Joined: 2005-05-21 07:12:12
Location: DRW

Post by Solaire »

Если передашь в функцию сам массив (

Code: Select all

funk(mass)
), то меняй что хочешь, возвращать ничего не надо будет. Массив изменится везде.
Если передаешь элемент массива, то передаешь его как переменную. То есть внутри той функции надо будет дать ему имя как переменной (вместо записи

Code: Select all

sub funk(mass[1])
надо будет что-то вроде

Code: Select all

sub funk(m)
), и потом значение этой переменной надо будет вернуть.
Last edited by Solaire on 2005-09-15 16:09:42, edited 1 time in total.
Mamoru
Posts: 45
Joined: 2005-07-10 11:26:37

Post by Mamoru »

Всё, разобрался! Спасибо за внимание. :)

Code: Select all

sub ggg()
dim mass[10]
mass[1]="start"
uo.print(mass[1])
ttt(mass)
uo.print(mass[1])
end sub
sub ttt(mass)
mass[1]="chenged"
uo.print(mass[1])
end sub
Post Reply