Я новичок в C, и я хотел бы, чтобы прочитать содержимое из диапазона адреса памятиКак цикл и прочитать содержимое из диапазона адреса памяти
Предположим, что у меня есть следующий спектр адрес: 0x00065580 - 0x000655c0
этого диапазона получить от команды:
$ cat /proc/a_process_pid/maps | grep heap
00065580-000655c0 ...........heap
(Пожалуйста, смотрите изображение ричного сверху диапазона)
Я попытался с помощью цикла, но не везет, (так же, как думать о разработчика Java)
#include <stdio.h>
#define START_ADDR 0x00065580
#define END_ADDR 0x000655c0
int main(){
char *start = START_ADDR ;
char *end = END_ADDR;
for(char *i=start ; i <= end ; i++){
printf("%s",i);
}
return 0;
}
Он генерирует сообщение об ошибке:
[email protected]:~# ./test
Segmentation fault (core dumped)
Пожалуйста, скажите мне, что я не прав и что мне нужно узнать?
Проверяет ли имя вашего файла исходного кода? Возможно, вы компилируете свой исполняемый файл, –
Извините, я запускаю программу неправильно, я редактирую ошибку, просто простую «Ошибка сегментации (сбрасывание ядра)» – Ryo
'printf («% s », * i);' it it ? – coderredoc