我创建了一个由10个元素组成的结构(哨兵值为11个)和一个结构指针,将第一个结构元素的地址分配给它。
struct student
{
int roll_no;
};
struct student s[11];
struct student *ptr = &s[0];
s[10] = NULL; // Sentinel value
while (*ptr != NULL ) // Sentinel Controlled Loop
{
printf ("%d - ", ptr -> roll_no);
ptr++;
} 如何在结构数组的末尾提供一个哨位值?
编辑:结构中的值正在动态变化,我已经为10个结构创建了空间,但可能会发生,它们一次只显示5个元素。第六位的哨兵值。
当用户输入一个新的结构元素时,前哨值会向前移动等等,因此我不能使用(int < 10)条件简单地打印所有值。
发布于 2014-07-13 07:54:21
您的哨兵必须是int类型(或struct student中的其他字段),例如:
s[10].roll_no = -1;您的while循环如下:
while(ptr->roll_no != -1)
{
...
ptr++;
}https://stackoverflow.com/questions/24720551
复制相似问题