#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#pragma warning (disable:4996)
struct stu
{
int id;
int*high;
int age;
char sex;
char name[128];
};
void set_num(struct stu*num, int n)
{
for (int i = 0; i < n; i++)
{
(*(num + i)).id = i + 10;
int oh = 182 + i;
char buf = "";
sprintf(buf, "%d%d%s\n", i, i, "helloword");
strcpy((*(num + i)).name, buf);
strcpy((num+i)->high,oh);
(*(num + i)).age = 50 + i;
strcpy((*(num + i)).sex, "boy and girl");
}
}
int main()
{
struct stu num[128];
memset(num, 0, sizeof(num));
set_num(num, sizeof(num) / sizeof(num[0]));
for (int i = 0; i < sizeof(num) / sizeof(num[0]); i++)
{
printf("%d%d%d%s%s\n", num[i].id, num->high, num[i].age, num[i].sex, num[i].name);
}
system("pause");
return 0;
}
printf("%d%d%d%s%s\n", num[i].id, num->high, num[i].age, num[i].sex, num[i].name);
改为
printf("%d%d%d%c%s\n", num[i].id, *num[i].high, num[i].age, num[i].sex, num[i].name);
set_num函数错误太多了,基本概念模糊啊
void set_num(struct stu*num, int n)
{
for (int i = 0; i < n; i++)
{
(*(num + i)).id = i + 10;
int oh = 182 + i;
char buf[100] = { 0 };
sprintf(buf, "%d%d%s\n", i, i, "helloword");
strcpy((*(num + i)).name, buf);
(num + i)->high = new int;
*((num + i)->high) = oh;
(*(num + i)).age = 50 + i;
(*(num + i)).sex = 'M';
}
}
结构体定义身高是指针型了,把*去掉
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632