簡體   English   中英

C - 在 Visual Studio 中使用動態結構數組時出現訪問錯誤

[英]C - Access error when using dynamic array of struct in Visual studio

我是 C 編程的新手,我正在嘗試運行一個代碼片段來創建結構 object 的動態數組,然后使用 scanf 保存值。 當我在代碼塊中運行代碼時,它工作得很好,但在 Visual Studio 2019 中拋出 memory 訪問異常

我附上了代碼片段和錯誤跟蹤。

    struct Student
{
    int rollNumber;
    char studentName[10];
    float percentage;
};

int main(void)
{
    int counter;
    struct Student studentRecord[5];

    printf("Enter Records of 5 students");

    for (counter = 0; counter < 5; counter++)
    {
        printf("\nEnter Roll Number:");
        scanf_s("%d", &studentRecord[counter].rollNumber);
        printf("\nEnter Name:");
        scanf_s("%s", &studentRecord[counter].studentName);
        printf("\nEnter percentage:");
        scanf_s("%f", &studentRecord[counter].percentage);

    }

    printf("\nStudent Information List:");

    for (counter = 0; counter < 5; counter++)
    {
        printf("\nRoll Number:%d\t Name:%s\t Percentage :%f\n",
            studentRecord[counter].rollNumber, studentRecord[counter].studentName, studentRecord[counter].percentage);
    }
    return 0;
}

錯誤:

在 linkedList.exe 中的 0x7C9AEF8C (ucrtbased.dll) 處引發異常:0xC0000005:訪問沖突寫入位置 0x00500000。

您需要為string格式說明符(即%s )指定緩沖區的大小(以字符為單位)。

scanf_s( "%9s", studentRecord[ counter ].studentName, 10 );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM