У нас есть заголовочный файл с этими структурами заявил:C Язык: Путь доступа к полю в структуре, в структуре (немного сложнее этот)
typedef struct{
unsigned short rgb[3];
}PIXEL_T;
typedef struct{
int format;
int nrows;
int ncolumns;
int max_color;
PIXEL_T **pixels;
}PBM_T;
И мы пытаемся получить доступ к РГБУ [0], чтобы написать номер. Но поскольку мы новички, работа с массивом «указатель указателей» оказывается сложной. Вот наша лучшая, неправильная попытка:
/*pbm was previously declared as a PBM_T structure. rows and columns are auxiliary variables to send to the nrows and ncolumns field. we're suppose to create a bitmap matrix*/
pbm->(**pixels) = malloc(sizeof(int *)*rows);
if (pbm->(**pixels) == NULL)
ERROR(ERR_ALLOC,"Error allocating memory for the bitmap matrix");
int i;
for(i = 0; i < columns; i++) {
pbm->pixels[i] = malloc(sizeof(int)*columns);
}
pbm->&nrows = rows;
pbm->&ncolumns = columns;
while((getline(&line, &len, file_stream)) != 1) {
getline(&line, &len, file_stream);
sscanf(line,"%d",&pbm->pixels[i][j]->rgb[0]); /* i and j are for two for cycles we're going to implement */
}
В основном наша самая большая проблема - это правильный способ доступа к этому полю. Все * и & нас путают. Если кто-то может также дать краткое объяснение того, как это работает, мы будем очень благодарны. Заранее спасибо. не
@ Относитесь к тому, как они работают, прочитайте мой ответ здесь http://stackoverflow.com/questions/19602300/c-pointers-when-new-functions-are-called/19602433#19602433 может помочь полностью – Jageen
благодарим за отзыв , мы получаем смысл операторов & и *, он просто запутывается, когда мы предполагаем использовать их для доступа к полям структуры, особенно к этим «**». – Deegriz
Ваше величество, операторы '*' и '&', а также круглые скобки, не могут применяться к именам полей, как, например, 'pbm -> & nrows' или' pbm -> (** pixels) '. Пожалуйста, оставьте их, ваши испытуемые будут вам благодарны. –