就比如我把要把一个结构体放入这个数组中,如果该数组某个位置是空的,就把这个结构体放进去
该回答引用chatgpt:
在 C 语言中,数组中的元素如果没有进行初始化,则默认是未定义的(即垃圾值),而结构体变量如果没有初始化,其成员变量也会是未定义的。
因此,我们可以通过初始化数组中的元素来表示其为空。一种简单的方式是定义一个特殊的值,例如 0 或 NULL,表示该位置为空。可以通过以下方式来判断数组中的元素是否为空
#include <stdio.h>
struct Student {
char name[20];
int age;
};
int main() {
struct Student students[10] = {0}; // 将数组中所有元素都初始化为0
int i;
for (i = 0; i < 10; i++) {
if (students[i].age == 0) { // 判断结构体中的某个成员变量是否为0
printf("element %d is empty\n", i);
} else {
printf("element %d is not empty\n", i);
}
}
return 0;
}
那你得有个判断的标志,比如数组记录的是结构体指针,指针为空则表示位置是空的;或者同时有个大小相同的标志数组,对应下标如果已经放置结构体,则标志位为1,否则为0。用标志位判断是否为空。或者结构体中有个标志变量,已放入数组时设置为1,否则为0
class HighPrecisionTimer
{
public:
HighPrecisionTimer(void)
{
QueryPerformanceFrequency(&CPU频率);
}
~HighPrecisionTimer(void){}
void 开始()
{
QueryPerformanceCounter(&开始时间);
}
void 结束()
{
QueryPerformanceCounter(&结束时间);
间隔 = ((double)结束时间.QuadPart - (double)开始时间.Quadpart)/(double)CPU频率.QuadPart;
}
double 间隔毫秒()const
{
return 间隔 *1000;
}
pricate:
double 间隔;
LARGE_INTEGER 开始时间;
LARGE_INTEGER 结束时间;
LARGE_INTEGER CPU频率;
};