c как сделать указатель на динамический массив в структуре - PullRequest
0 голосов
/ 07 октября 2011

Я принимаю данные от пользователя для количества элементов в массиве. Массив находится внутри моей структуры 'Polymer'

struct Polymer
{
    int length;

    struct Monomer *monomer;

}polymer;

В основном я создаю новый указатель массива мономеров и устанавливаю указатель мономера в «Polymer» на него

struct Monomer *monomers[size];
polymer.monomer = momomers;

Я получаю сообщение об ошибке «Назначение из несовместимого типа указателя», которое, как я полагаю, связано с тем, что мы преобразуем указатель массива мономеров в мономер. Как мне объявить его как указатель массива мономеров в структуре?

Ответы [ 2 ]

5 голосов
/ 07 октября 2011

Вы объявляете массив указателей мономеров , когда вам, вероятно, нужен массив мономеров .Бросьте *:

struct Monomer monomers[size];
polymer.monomer = momomers;
2 голосов
/ 07 октября 2011
struct Monomer *monomers[size];
polymer.monomer = momomers;

monomers - массив указателей . Они не указывают ни на какие допустимые местоположения и имеют значения мусора. Polymer::monomer - это указатель . Массив указателей не совместим по типу с указателем.

Вместо этого попробуйте -

struct Monomer monomers[size];
polymer.monomer = momomers;  // 2

Теперь этот оператор 2 действителен, потому что массив распадается на указатель.

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