我基本上想根据给定的数字存储一组学生姓名。例如,如果用户要插入 5 个姓名,则数组大小将为 5。如果用户要插入 10 个姓名,则数组大小将为 10。
我有一个类似这样的方法来为数组中的特定元素设置名称。
void setNames(char *names){
strcpy(name[i], names);
}
问题是,我该如何进行数组绑定(bind)检查?听说只能在索引为-1
时才可以添加。
最佳答案
数组不维护它们自己的大小,你必须为它们做这件事。这是 vector 更容易处理的部分原因,也是为什么每个人都会说“wtf,原始数组?使用 vector ”的部分原因。数组只是一 block 连续的内存,仅此而已。 vector 包含一个数组,在某种程度上可以让你像数组一样使用它,但它会为你处理很多内务细节。
无论如何,如果您真的想使用原始数组,那么您需要随它一起传递大小信息。 C 字符串是一个以 null 结尾的数组——只是一个普通的旧数组,但最后一个元素是 \0
。这样你就可以在不知道它的大小的情况下读取它,只是不要读取最后的空字符(龙在那里)。
关于c - 数组越界,索引-1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27005594/