#include<stdio.h>
#include<stdlib.h>
struct student {
char name[20];
char sex;
int age;
};
int main()
{
struct student s[5];
struct student* p = s;
void input(struct student*);
void show(struct student*);
void sort(struct student*);
input(p);
sort(p);
show(p);
system("pause");
return 0;
}
void input(struct student* s)
{
printf("輸入五個學生資訊\n");
printf("姓名\t性別\t年齡\n");
int i;
for (i = 0; i < 5; i++)
scanf_s("%s %c %d", s[i].name, &s[i].sex, &s[i].age);
}
void show(struct student* s)
{
printf("姓名\t性別\t年齡\n");
int i;
for (i = 0; i < 5; i++)
printf("%5s%5c%5d", s[i].name, s[i].sex, s[i].age);
}
void sort(struct student *s)
{
int i, j,min;
struct student t;
for (i = 0; i < 4; i++)
min = i;
for (j = i + 1; j < 5; j++)
if (s[j].age < s[min].age)
min = j;
if(min!=i)
{
t = s[i];
s[i] = s[min];
s[min] = t;
}
}
為什么代碼報錯0xC0000005: 寫入位置 0x01340000 時發生訪問沖突,應該怎么改正
uj5u.com熱心網友回復:
將 input()函式里的scanf_s代碼修改為scanf_s("%s %c %d", s[i].name, 20, &s[i].sex, 1, &s[i].age);scanf_s()是scanf的安全版本,需要指定保存資料的字串、字符等變數的長度。
VS2015 C++版本除錯

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/52103.html
標籤:新手樂園
上一篇:關于類的物件陣列實作
下一篇:求助啊,快被這程式設計逼瘋了
