Я передаю указатель структуры на функцию и обращаюсь к ней в функции, но указатель указывает на фиктивное значение после того, как он входит в эту функцию.
Вот код, который считывает значения пикселей
#define MAX_SIZE 50000
void readImage(Image * img)
{
int pixels[MAX_SIZE];
int a =0;
for (int i = 0; i < 100; i++)
{
for (int j = 0; j < 100; j++)
{
pixels[a] = image.at<uchar>(i, j);
a++;
}
}
(*img).data = pixels;
}
Структура выглядит следующим образом:
struct Image {
int *data;
};
В основном я передаю этот объект структуры другой функции после прочтения:
int main()
{
Image img;
readImage(&img);
std::cout << *(*img).data; // this prints first pixel value i.e. 0
test(&img);
return 0;
}
В тестовой функции я обращаюсь к нему следующим образом-
void test(Image * img)
{
std::cout << *(*img).data;
}
Это выводит вывод как -858993460, но если выдает то же самое в основном, выводит 0
Есть ли какие-либо ошибки в вышеописанном методе, я хочу, чтобы функция Test выводила так же, какв main ()
Примечание: - Игнорировать ошибки отступа / синтаксиса, если таковые имеются