Есть много проблем с попытками сделать это, в первую очередь, как упомянул Уилсон, вы действительно не будете иметь никакого представления о том, что там хранится.
Уилсон немного выключен, однако вам действительно следует привести его к типу char вместо int, поскольку с помощью int вы увидите 4 байта, а не один байт, как это было бы с char.
Кроме того, если вы не можете прочитать 8-битные символы ASCII и сопоставить их с чем-то значимым в вашей голове, вы, вероятно, захотите преобразовать его в другую форму, такую как base2, base8 или base16.
Вы можете сделать это несколькими способами - вероятно, лучший способ сделать это с помощью побитовых операторов и операторов двоичного сдвига, глядя в таблицу диспетчеризации, чтобы отобразить ее в видимый ASCII.
Однако вы все равно не будете знать, что там хранится, вы просто сможете увидеть некоторую зашифрованную форму необработанных двоичных данных. Причина в том, что C набирается только в отношении переменной, указывающей на этот адрес памяти. Обнаженный взгляд на эту память просто даст вам двоичный файл и не сможет посмотреть, с какими переменными связана эта память или какого типа эти переменные.
Вторая проблема заключается в том, что вам нужно соблюдать осторожность, чтобы просматривать только те части памяти, к которым у вас есть доступ. Если вы не будете осторожны с доступом к нему, сегменты кода памяти не могут быть просмотрены. Тебе повезет, если ты постараешься избежать ошибки сегментации.
Вероятно, наиболее эффективный способ заглянуть в память процесса - это сбросить его сегмент на диск. В UNIX это делается через дамп ядра. Затем вы можете загрузить его в отладчик и просмотреть содержимое своего сердца, и даже иметь возможность отобразить его на правильные типы с достаточным знанием стека. Вы также можете использовать бинарный редактор, чтобы проверить его нетипизированным способом - часто строки распознаются.
Удачи!