Инициализация персонажа внутри структуры

#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.

Другие вопросы по тегам