关于结构体指针数组的问题。
答案:4 悬赏:20
解决时间 2021-12-22 15:39
- 提问者网友:他是我的あ男人
- 2021-12-22 09:30
#include
#define N 10
struct car
{
int hour,min,sec;
char pai;
};
struct car sit[N+1];
struct car (*M)[N+1];
M=sit;
我知道不对,不过要怎么写才能正确的把M指向sit数组呢?
最佳答案
- 二级知识专家网友:爱情是怎么炼成的
- 2021-12-22 09:49
//把最后一行赋值语句换成下面几行
M=(struct car *)malloc(sizeof(struct car)*(N+1));//为指针分配空间,防止段错误
if(M==NULL)//判断是否分配成功。如果不成功就退出
exit(1);
M = &sit;//把结构体数组的地址赋值给结构体数组指针。而不是赋值结构体数组本身
全部回答
- 1楼网友:堕落奶泡
- 2021-12-22 11:30
strut car *M;就行了
- 2楼网友:劳资的心禁止访问
- 2021-12-22 11:20
在每一次循环当中,动态分配内存:
str[i] = (stu *)malloc(sizeof(stu));
这样就行了,而str[i] = (stu *)malloc(81*sizeof(stu))申请的空间大小是81*16字节(因为你定义的结构体大小是16字节),
要这样的话,你是在白白浪费内存空间。
- 3楼网友:如果这是命
- 2021-12-22 10:19
#include
#define N 10
struct car
{
int hour,min,sec;
char pai;
};
void main(){
car sit[N+1];
car *M=sit;
}
我要举报
大家都在看
推荐资讯