visual studio 2017 srand() 崩溃(在线编译器工作)

visual studio 2017 srand() crashes (online compiler works)

这3种代码我都试过了。

1:Visual Studio 2017 输出:应用程序崩溃。

 time_t = t;
 srand((unsigned)time(&t)); 

2:Visual Studio 2017 输出:应用程序崩溃。

srand (time(NULL));

3:Visual Studio 2017 输出:正常打印,然后崩溃。

long t;
time(&t);
srand((unsigned)t);

第三个变体 output/error 和构建警告打印: 调试错误! 运行-TimeCheck 失败 #2 - 变量 't' 周围的堆栈已损坏

警告 C4333:'function':不兼容的类型 - 从 'long *' 到 'time_t *const' (尝试使用 time_t 进行修复,但应用程序崩溃了)

所有示例都适用于在线编译器!! onlinegdb.com。 所有测试都是使用下面的代码完成的。

#define _CRT_SECURE_NO_WARNINGS
#define CON 10

#include <stdio.h>
#include <stdlib.h>
#include <time.h>



float maxB(float v[], int n);

float maxB(float v[], int n) {
    float est;

    for (int i = 0; i < n-1; i++)
    {
        printf("[%d]: %.2f\n", i, v[i]);
        if (v[i] >= v[i + 1]) {
            est = v[i];
        }
        else
        {
            est = v[i + 1];
        }
    }
    return est;
}

main() {

    srand(time(NULL));

    float v[CON];
    int a;
    printf("how many vector positions to test?\n");
    scanf("%d", &a);
    while (a < 0 || a > CON ){
        printf("invalid input!how many vector positions to test?\n");
        scanf("%d", &a);
    }

    for (int i = 0; i < CON; i++){
        v[i] = (float)(rand() % 10);
    }
    printf("Biggest number %f", maxB(v, a));
} 

所以...我应该如何使用 visual studio 的随机函数?我应该使用另一个版本吗?

已解决,问题出在我使用的电脑上,当我用另一台机器测试时,它成功了!