Вернуть неверный тип данных? - PullRequest
0 голосов
/ 25 ноября 2018

Я обнаружил ошибку, когда возвращаю указатель на подструктуру в структуре.Ошибка следующая:

evolve.c:28:21: error: incompatible types when returning type ‘PPM_IMAGE {aka struct <anonymous>}’ but ‘PPM_IMAGE * {aka struct <anonymous> *}’ was expected
       return (indPointer->image);

Все то же самое, но единственное отличие - лишние звездочки (что означает, что я неправильно возвращаю указатели).Вот фрагменты кода:

Функция:

PPM_IMAGE *evolve_image (const PPM_IMAGE *image, int num_generations, int population_size, double rate);

Оператор возврата:

return (indPointer->image);

Декларация indPointer:

Individual *indPointer = generate_population(population_size, image->width, image->height, image->max_color);

Структураof Individual:

typedef struct {
  PPM_IMAGE image; // image
  double fitness;  // fitness
} Individual;

Как видите, я пытаюсь получить доступ к первому элементу массива, на который указывает indPointer.Из этого первого элемента я пытаюсь вернуть субструктуру изображения в Индивидиуме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...