首页 > 编程知识 正文

结构体中的结构体初始化,结构体指针初始化

时间:2023-05-06 13:47:14 阅读:114475 作者:754

过年的大脑已经瓦特了。

#包含

#define N 10

#define MAXSIZE 100

类型定义结构{

int r[MAXSIZE 1]; /*用于存储要排序的数组*

int length; /*用于记录顺序表的长度*/

} SqList;

输入主(语音) {

SqList sq;

sq.length=N;

printf('%d ',sq.length );

返回0;

}

编译上面的程序时,我注意到发生了内存泄漏。 我一时想不起来问题出在哪里。 调试几次后,由于没有初始化结构内的数组,注意到发生了“野指针”。

使用结构指针变量时,在定义结构指针变量后,容易出现直接操作结构指针变量指向的结构成员的“低级”错误,从而导致令人费解的错误。 为了正确操作结构指针变量,必须为结构指针变量提供有效的结构变量地址。 例如:

这个程序输出的值变得不可预测。 "程序中只定义了结构指针变量,而没有为结构指针变量分配有效值,导致结构变量指向的地址不确定,无法获得预期的结果. "

结构UART {

int a;

uchar b;

}

输入主(语音) {

结构UART * p;

p-a=0xXXX;

p-b=0xXX;

printf('%I、%c '、p-b、p-a );

返回0;

}

应该改为:

结构UART {

int a;

char b;

}

输入主(语音) {

结构UART? *p;

结构自动DD;

p=dd; //这句话必须。 否则,会发生无法预测的问题

p-a=0xXXX;

p-b=0xXX;

printf('%I、%c '、p-b、p-a );

返回0;

}

指向结构的指针初始化示例:

结构事件{

char *name;

int score;

结构稳定*下一步;

}stu,*stu1;

int main () )。

stu.name=(char* ) malloc ) sizeof (char ); /*1.需要初始化结构成员指针*

strcpy(stu.name,' Jimy ';

stu.score=99;

su1=(结构稳定* ) malloc ) sizeof (结构稳定); /*2.需要初始化结构指针*

stu1-name=(char* ) malloc ) sizeof (char ); /*3.结构指针的成员指针也需要初始化*

stu.next=stu1;

strcpy(stu1-name,' pydrs ';

stu1-score=98;

stu1-next=NULL;

printf(name%s,score %d n ),stu.name,stu.score );

printf(name%s,score %d n ),stu1-name,stu1-score );

自由(stu1 );

返回0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。