如何知道数组的下一个自由位置

时间:2017-02-09 23:52:57

标签: c arrays

在字符串中,我们可以通过" \ 0"知道最后一个字符串,但是我怎么知道数组的下一个空闲位置。我把代码放在这里:

#include <stdio.h>

int main(){
    int notes[10];
    int i, usuari;

    printf("Put a number");
    scanf("%i", &usuari);

    for (i=0;i<usuari;i++){
        scanf("%i", &notes[i]);
    }
}

用户将给出一个数字(变量usuari)。我怎么知道用户给出的数字旁边的位置是免费的?我怎么打印出来?

2 个答案:

答案 0 :(得分:1)

您通常要做的是将数组初始化为一些永远不会输入的值,例如-1。因此,您可以定义如下注释:

int notes[10] = {-1};

然后你可以在使用之前检查notes [i] == -1。但是,我只是猜测unused的意思。

编辑:

如上所述,上面只初始化第一个元素。你实际上必须初始化这样的笔记:

int notes[10] = { -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,};

或循环

答案 1 :(得分:0)

使用终端值,类似于C中的字符串如何使用终值来指示结束...或存储下一个值的位置,类似于循环知道存储下一个值的位置。

假设您将i的初始化移到循环之外,并将用户输入包装成嵌套循环,如下所示:

#include <stdio.h>

int main(){
    int notes[10];
    int i = 0, usuari;

    for (;;) {
        printf("Put a number");
        scanf("%i", &usuari);

        for (;i<usuari;i++){
            scanf("%i", &notes[i]);
        }
    }
}

最内层循环如何知道存储下一个值的位置?在变量生命周期的持续时间内存储并递增位置......当然,你要存储长度,是吗?