50٪ تخفیف روی تمام دوره‌ها!
پایان تخفیف تا:
مشاهده دوره‌ها
0

چاپ محتویات یک آدرس در حافظه c

سلام

من میخوام آدرس یه قسمت از حافظه رو داخل یک متغیر بریزم و محتویات اون آدرس رو چاپ کنم،فقط آدرس اون قسمت از حافظه دراختیار برنامه ی دیگری است.

من یه سرچه کوچولو زدم به اشاره گرها برخودرم،فهمیدم میشه آدرس یه متغیر رو بدی و محتویات اون رو چاپ کنی مثل کد زیر ولی وقتی آدرس حافظه در اختیار برنامه دیگری باشه چی ؟

#include <iostream.h>
#include <conio.h>
int main(){
int x=12;
int* ptr;
ptr=&x;
cout<<*ptr<<endl;
getch();
return 0;
}

ولی این یکی کد جواب نمیده :

#include <iostream.h>
#include <conio.h>
int main(){
char* str = "0x0018ff54";
cout<<*str;
getch();
return 0;
}

چرا ؟

پرسیده شده در 1393/08/24 توسط

2 پاسخ

1

سلام دوست عزیز

اگه برنامه ای بخواهد به آدرسی دسترسی داشته باشد که در اختیار برنامه دیگری باشد سیستم عامل مانع از این کار خواهد شد.

بنابراین نمی تونی بهش دست پیدا کنی

ولی کدی که آوردی فقط یه رشته رو در داخل اشاره گر c میریزه

توضیح بیشتر این که 0x0018ff54 یک عدد هستش که می تونی توی متغیر int هم بریزی ولی بدون علامت کوتیشن باید این کارو بکنی

پاسخ در 1393/08/24 توسط
0

بله با int هم تست کردم جواب نداد ، api خاصی برای انجام این کار هست ؟ اگه مقدور هست یه مثال بزنید ممنون

پاسخ در 1393/08/25 توسط

پاسخ شما