Инициализация персонажа внутри структуры
#define NAMESIZE 20
struct point {
int x;
int y;
};
struct rectangle {
struct point upperleft;
struct point lowerright;
char label[NAMESIZE + 1];
};
В моей главной
int main(void) {
struct rectangle r1;
r1.upperleft.x = 1;
r1.upperleft.y = 4;
r1.lowerright.x = 4;
r1.lowerright.y = 1;
strcpy_s(r1.label, NAMESIZE, "hi");
printf("Upper left: (%d, %d)\n", r1.upperleft.x, r1.upperleft.y);
printf("Lower Right: (%d, %d)\n", r1.lowerright.x, r1.lowerright.y);
printf("Name of rectangle: %d", r1.label);
return 0;
}
Мое имя прямоугольника является адресом памяти, как я должен правильно инициализировать символьную переменную моей структуры?
2 ответа
struct rectangle r1 = {{1,4}, {4,1}, "hi"};
printf("Upper left: (%d, %d)\n", r1.upperleft.x, r1.upperleft.y);
printf("Lower Right: (%d, %d)\n", r1.lowerright.x, r1.lowerright.y);
printf("Name of rectangle: %s", r1.label);
Это очистит это: memset(&r1.label, 0, sizeof(r1.label))
Это исправление к тому, что у вас есть: strcpy_s(&r1.label, NAMESIZE+1, "hi");
&
возвращает "адрес". Так &r1.label
это адрес метки в r1.