Попробуйте:
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" ) ;
Есть много способов, которыми malloc / free может хранить размер области памяти. Например, он может быть сохранен непосредственно перед областью, возвращаемой malloc. Или он может храниться в таблице поиска в другом месте. Или он может храниться неявно: некоторые области могут быть зарезервированы для определенных размеров выделений.
Чтобы узнать, как это делает библиотека C в Linux (glibc), получите исходный код на http: // ftp. gnu.org/gnu/glibc/ и просмотрите файл malloc / malloc.c
. Вверху есть некоторая документация, которая относится к A Memory Allocator Дуга Ли.
Конечно, это зависит от реализации стандартной библиотеки. Так что лучше всего будет, вероятно, покопаться в исходном коде библиотеки ( glibc по умолчанию в Linux) и посмотреть, сможете ли вы разобраться в этом. Вероятно, это будет нетривиально.