Где Делают malloc () / свободный () Хранилище Выделенные Размеры и Адреса?

Попробуйте:

var obj = { "filter" : [ "ABDC", "ADBAC" ]  } ;

function test(str) {
  for ( var i = 0; i < obj["filter"].length; i++ ) {
    patt = new RegExp(obj["filter"][i]) ;
    if ( patt.test(str) ) break;
  }
  console.log(str + " ==> " + patt.test(str) )
}

test( "ABCD" ) ;
test( "ABDC sample" ) ;
test( "ADBACABDC" ) ;

15
задан Elmar Weber 12 May 2009 в 09:34
поделиться

2 ответа

Есть много способов, которыми malloc / free может хранить размер области памяти. Например, он может быть сохранен непосредственно перед областью, возвращаемой malloc. Или он может храниться в таблице поиска в другом месте. Или он может храниться неявно: некоторые области могут быть зарезервированы для определенных размеров выделений.

Чтобы узнать, как это делает библиотека C в Linux (glibc), получите исходный код на http: // ftp. gnu.org/gnu/glibc/ и просмотрите файл malloc / malloc.c . Вверху есть некоторая документация, которая относится к A Memory Allocator Дуга Ли.

12
ответ дан 1 December 2019 в 04:41
поделиться

Конечно, это зависит от реализации стандартной библиотеки. Так что лучше всего будет, вероятно, покопаться в исходном коде библиотеки ( glibc по умолчанию в Linux) и посмотреть, сможете ли вы разобраться в этом. Вероятно, это будет нетривиально.

1
ответ дан 1 December 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: