下面两段代码的输出结果分别可能是什么?请简述原因。 int a =...

发布于 2022-03-03 17:30:27

下面两段代码的输出结果分别可能是什么?请简述原因。
int a = 0
void func(int* i) {
    for (int i = 0 i < 1000000 i++)
    a = *i
    free(i)
}
int main() {
    pthread_t t[3]
    for (int i = 0 i < 3 i++) {
        int* b = (int*)malloc(sizeof(int))
        *b = i
        pthread_create(&t[i], NULL, (void*)&func, (void*)b)
    }
    for (int i = 0 i < 3 i++) {
        pthread_join(t[i], NULL)
    }
    printf("%d\n", a)
    return 0
}


int a = 0
void func(int* i) {
    for (int i = 0 i < 1000000 i++)
    a = *i
    free(i)
}
int main() {
    for (int i = 0 i < 3 i++) {
        int* b = (int*)malloc(sizeof(int))
        *b = i
        fork()
        func(b)
    }
    printf("%d\n", a)
    return 0
}


关注者
0
被浏览
43
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看