Перед началом области пользовательских данных в блоке памяти выделяется некоторое содержимое заголовка, выделенное с помощью malloc.Как изменить содержимое заголовка malloc.c?
buffer = (char*) (malloc (i));
int j;
for(j=1;j<9;j++){
printf("before data: %d\n",*(buffer-j));
выход, что я получил это прежде чем данные: 0 прежде чем данные: 0 прежде чем данные: 0 прежде чем данные: 35 прежде чем данные: 0 прежде чем данные: 0 прежде чем данные: 0 прежде чем данные : 0
Я хотел бы иметь дополнительное поле в заголовке, которое я буду использовать для установки некоторых значений. Я пробовал модифицировать библиотеку malloc.c для настройки настраиваемого заголовка, но ничего не работало. Я хотел бы знать, есть ли способ сделать это.
Просто позвоните реальному 'malloc', чтобы выделить немного больше места, чем вам нужно, сохраните все, что хотите, в дополнительном пространстве и верните указатель на первый байт, который вы не использовали. (Требования к выравниванию соответствия). В 'free' или' realloc' вам необходимо соответствующим образом отрегулировать указатели. –
Что вы хотите изменить в заголовке? Вы понимаете, что определение 'malloc()' не находится в файле заголовка, правильно? –
@souravGhosh я загрузил библиотеку malloc.c, скомпилированную и связанную с существующими двоичными файлами – Fulan