struct{
char n[30];
int a;
}strr;
例如一个动态数组 stru *p = (stru *)mollac(sizeof(stru)*100);
已经向里面存了几个元素了但是不确定有几个,然后我想找到一个空的位置存储新的元素 请问有什么思路吗?比如 我怎么知道p[3]这个位置有没有被使用?
PS: 除了这个功能我的程序都是可以正常运行的,上面的代码只是个临时写的说明
不知道变量a是什么作用。我想可以增加可以增加一个变量length,表示当前数组的长度。比如下面这样。length的初值赋值为0。
struct stru{
char n[30];
int a;
};
int length;
这样你每次插入一个新的元素的时候,就“当前数组的长度加一”。当然默认你的插入元素是从下标'0'开始的,并且是连续的。这样想找到一个空的位置进行插入时,就可以使用
p[length].n=...;p[length].a=...;
length++;
这只是我个人的想法,希望对你有所帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2015-10-28
只有你自己记录和跟踪了。C语言本身没有提供机制来标识一块malloc后的空间是否被初始化
第2个回答 2015-10-28
看首地址的值是不是NULL就知道是否为空了。