У меня есть массив, который теперь статичен. Это операции, которые я делаю с ним. Во-первых, я создаю двумерный массив. Затем я заполняю его, используя циклы. И затем я отправляю его на работу, где есть также циклы, которые используются. Здесь я бы хотел опубликовать некоторый пример кода, который похож на мой.Отправить динамический массив для функции C++
bool picture[20][20]; //here's my array right now. Pretty ugly. Just for testing.
for (int y=0;y<Height;y++)
{
for (int x=0;x<Width;x++)
{
if (treshold<middle)
{
picture[x][y]=1;
}
else
{
picture[x][y]=0;
}
}
}
//Here's an example of filling an array
leftk = left(picture,widthk, heightk); //That's how I use a function
int left(int picture[200][200],int row,int col)
{
for (int x = 0; x <=row-1; x++)
{
for (int y = 0; y <=col-1 ;y++)
{
if (picture1[x][y]==1)
{
return x;
}
}
}
}
//And that's the function itself
Поэтому здесь мне нужно переключить свой массив на динамический. Вот как я объявляю свой динамический массив
bool** picture=new bool*[size];
for(int i = 0; i < size; ++i)
picture[i] = new bool[size];
//size is just a variable.
Что касается статически заявленных циклов, все очень просто. Отправка этого массива в качестве параметра для работы.
Мне уже удалось создать динамический массив, это просто. Затем я заполняю его цифрами. Здесь нет проблем. Но я не могу понять, как отправить массив для работы и, кроме того, как его использовать. Не могли бы вы дать мне возможность модифицировать двумерные массивы в функциях. Извините за такой вопрос новичка. Надеюсь, кто-то поможет.
Кстати, упаковка класса была бы немного запутанной здесь, я думаю.
Это зависит от того, как был определен массив. Обычно я предпочитаю обертывать его в классе, потому что в противном случае нет простого решения. –
@JamesKanze: Лично я бы обернул его в класс или структуру, если это необходимо в нескольких местах или часто используется в программе. В противном случае для одного места используется 'vector>' будет делать хорошо, как вы думаете? –
Хорошо, спасибо, но я уже говорил, что упаковка в классе будет неудобной. Более того, массив используется только один раз, поэтому я надеюсь, что я уйду из классов. Первый способ, который вы показали, кажется довольно простым, но нуждается в некотором объяснении. Во-первых, я отправлю свой статический код C прямо сейчас, чтобы лучше описать проблему. Затем я опубликую объявление своего массива. Надеюсь, это тоже поможет. Но, к сожалению, мне нужна твоя помощь. Действие отправки массива и его получение в функции все еще недостаточно ярко. – user1131662