函数创建断言失败

时间:2019-04-08 03:17:05

标签: c++ function

我正在尝试创建一个将从结构数组中删除项目的函数。当我输入一个数字(scanf(“%d”,num))时,会弹出一个窗口,提示我断言失败并中止该程序。下面的指示行上有警告,但并没有阻止程序进行编译。程序崩溃时,错误显示在同一行上:

int N = 10;
std::vector<T*> vec(N);
std::for_each(vec.begin(), vec.end(), [](auto &ptr){
  ptr = new int;
});

我通过以下方式调用函数:

void delete_stud(Student* s, int lsize)
{

    int num = 0;

    printf("What number student in the list would you like to delete?\nStudent number: ");
    scanf("%d", num);
    // This line ^^^

    if (num <= lsize) {

        for (int i = num; i <= lsize; i++) {

            s[i - 1] = s[i];
        }

        lsize--;
    }
    else {

        printf("Invalid value entered\n");
        exit(0);
    }
}

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

delete_stud(class_list, lsize);

注意与号。