ポインタ変数について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
prester

ポインタ変数について

#1

投稿記事 by prester » 15年前

初めてお世話になります。よろしくお願いします。
ポインタ変数とアドレスについて調べる問題なのです。元々はint型だったのを私が以下のように
char型に変えました。これを今度はdouble型に変えたいのですがこれができません。
さらに、printf("%p) = ox%x\n", ptr_d, *ptr_d):を用いて表示すると図1のようになる。これを図2のように表示しなさいという問題です。
[図1]               [図2]
0.22ccc0) = 0.3020100        ptc_d:0.22ccc0) = 0.3020100
0.22ccc8) = 0.b0a0306        0.22ccc4) = 0.7060504
                  ptr_d:0.22ccc8) = 0.b0a0306
                     0.22cccc) = 0.f0e0d0e

#include <stdio.h>

int main(void){
char src[32], dst[32];
char *ptr_c, *a;
int *ptr_i, *ptr;
double *ptr_d;
int i;
// src配列にデータを格納
for(i=0; i<32; i++){
src = i;
}

// ptr_cにsrcの先頭アドレスをコピー
ptr_i =(int *) src;

// ptrを使用してsrcのデータを内容を出力する。
for(i=0; i<8; i++){
printf("%p) = 0x%x\n", ptr_i, *ptr_i);
ptr_i++;
if(i==6){
a = (char *) ptr_i;
}
}
printf("アドレスの差=%d",(char *) ptr_i - a);
}

どうぞよろしくお願いします。

prester

Re:ポインタ変数について

#2

投稿記事 by prester » 15年前

誰もわかりませんか?

box

Re:ポインタ変数について

#3

投稿記事 by box » 15年前

> [図1]               [図2]
> 0.22ccc0) = 0.3020100        ptc_d:0.22ccc0) = 0.3020100
> 0.22ccc8) = 0.b0a0306        0.22ccc4) = 0.7060504
>                   ptr_d:0.22ccc8) = 0.b0a0306
>                      0.22cccc) = 0.f0e0d0e

そもそも、与コードの出力結果が図1のようにならないところに、
回答が付かない原因があるのではないでしょうか。

シエル

Re:ポインタ変数について

#4

投稿記事 by シエル » 15年前

どこがどうできないのか具体的に説明して下さい。

閉鎖

“C言語何でも質問掲示板” へ戻る