#include <stdio.h>
#include <string.h>
struct chenjibiao
{
char id[10];
char name[30];
int chenji;
};
int main()
{
int i,n;
scanf("%d",&n);
//給定學生的人數
struct chenjibiao students;
struct *p=&students;
p=(struct students*)malloc(sizeof(struct students)*n);
for(i=0;i<n;i++)
{
scanf("%s %s %d",&p->id,&p->name,&p->chenji);
}
}
示例
3
1234567890 liming 99
5362152436 wangwu 100
4523658967 zhangsan 67
要實作這個的話應該要怎么改?剛開始學C語言,請大佬指點一二。
uj5u.com熱心網友回復:
struct chenjibiao students;struct *p=&students;
p=(struct students*)malloc(sizeof(struct students)*n);
改成
struct chenjibiao *p = (struct students*)malloc(sizeof(struct students)*n);
scanf("%s %s %d",&p->id,&p->name,&p->chenji);
改成
scanf("%s %s %d",(p+i)->id, (p+i)->name, (p+i)->chenji);
uj5u.com熱心網友回復:
改成
scanf("%s %s %d",(p+i)->id, (p+i)->name, &((p+i)->chenji));
uj5u.com熱心網友回復:
#include <stdio.h>
#include <malloc.h>
struct chenjibiao
{
char id[10];
char name[30];
int chenji;
};
int main()
{
int i, n;
scanf("%d%*c", &n);
//給定學生的人數
chenjibiao students[3];
for (i = 0; i < n; ++i)
scanf("%s %s %d%*c", &students[i].id, &students[i].name, &students[i].chenji);
for (int j = 0; j < n; ++j)
printf("%s %s %d\n", students[j].id, students[j].name, students[j].chenji);
return 0;
}
話說給結構體動態分配記憶體 又要分配又要釋放 麻煩死了
直接用區域變數不好嗎
uj5u.com熱心網友回復:
各有好處,動態分配的空間也可以在其他函式里用,區域變數不可以。
uj5u.com熱心網友回復:
謝謝(*°?°)=3
uj5u.com熱心網友回復:
謝謝(*°?°)=3
uj5u.com熱心網友回復:
struct chenjibiao students;
struct *p=&students;
p=(struct students*)malloc(sizeof(struct students)*n);
改成
struct chenjibiao *p = (struct students*)malloc(sizeof(struct students)*n);
scanf("%s %s %d",&p->id,&p->name,&p->chenji);
改成
scanf("%s %s %d",(p+i)->id, (p+i)->name, (p+i)->chenji);
改成
scanf("%s %s %d",(p+i)->id, (p+i)->name, &((p+i)->chenji));
請問為什么要這么改啊?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/274191.html
標籤:C語言
下一篇:求助大神(C++)
