Xcode malloc с memset не вызывал увеличения памяти при выпуске

Я хочу вручную создать oom по коду ниже:

      [NSTimer scheduledTimerWithTimeInterval:0.1 repeats:true block:^(NSTimer * _Nonnull timer) {
    void *bytes = malloc(1024*1024*50);
    memset(bytes, 1, 1024*1024*50);
}];

Но память не увеличилась, и я меняю код ниже:

      void **array = malloc(UINT32_MAX*sizeof(void *));
__block int64_t i = 0;
[NSTimer scheduledTimerWithTimeInterval:0.1 repeats:true block:^(NSTimer * _Nonnull timer) {
    void *bytes = malloc(1024*1024*50);
    memset(bytes, 1, 1024*1024*50);
    array[i] = bytes;
    i++;
}];

И получить Ом

Итак, моя проблема заключается в том, почему первые malloc и memset не увеличили реальное использование памяти. Другая информация заключается в том, что первый код вызывает ошибку при отладке, но бесполезен при выпуске. Может ли кто-нибудь дать какое-то объяснение (не очевидное подозрение) по этому поводу

0 ответов

Другие вопросы по тегам