Я пытаюсь скопировать содержимое структуры в другую структуру того же типа.Копирование содержимого структуры в другое
Я хотел бы иметь возможность изменять значения одной структуры, не затрагивая ее позже.
Я имею дело с чтением и редактированием файлов PPM. У меня есть:
-структураtypedef struct {
char format[4];
char comments[MAX_COMMENT_LENGTH];
int width, height, maxColourValue;
PPMPixel **pixels;
} PPMImage;
А потом у меня есть функция копирования для копирования значения более, но я получаю сообщение об ошибке при назначении различных полеев.
Я пытаюсь скопировать поля newPPM в messagePPM.
Ошибка:
incompatible types when assigning to type 'char[4]' from type 'char *'
messagePPM->format = newPPM->format;
incompatible types when assigning to type 'char[100]' from type 'char *'
messagePPM->comments = newPPM->comments;
Функция копирования:
//A function to copy contents of one PPMImage to another
void copyPPM(PPMImage *newPPM, PPMImage *messagePPM) {
messagePPM->format = newPPM->format;
messagePPM->comments = newPPM->comments;
messagePPM->width = newPPM->width;
messagePPM->height = newPPM->height;
messagePPM->maxColourValue = newPPM->maxColourValue;
messagePPM->pixels = newPPM->pixels;
}
Как исправить свою ошибку? Будет ли копирование полей таким образом достичь того, к чему я стремлюсь?
вы должны использовать тетсру, чтобы скопировать значения полей формата и комментариев. Вы можете использовать strcpy, если значения null завершены. – bruceg
Этому ответили здесь: - http://stackoverflow.com/questions/4931123/copying-one-structure-to-another – BryanT
@bruceg Спасибо за отзыв, это решило мое сообщение об ошибке. – Porteous96