2017-02-27 28 views
-3

構造体のアドレスの値をC言語で記述する必要があります。私はこのコード構造体のアドレスをC言語のファイルに書く方法

FILE *fp; 
fp=fopen("/path/to//doc.txt", "wb"); 
int x=sizeof((void *)st); 
fwrite (st, x, 100, fp); 
fclose(fp); 

でファイルfile.txtなどに書き込み、ときに私の結果はそのようなものです

void func_1 (struct_1 *st) 

そしてファイル.h

struct struct_1 { 
     target_ulong a; 
     target_ulong b; 
     uint32_t c; 
     uint16_t size; 
} 

に位置型struct_1 doc.txtを開きます。

enter image description here

+1

アドレスはメモリ位置を指します。ファイル内の場所を指していません。 –

+1

あなたは 'x'にどのような価値を期待していますか?あなたが 'sizeof(* st)'を使用したい構造体のサイズを望むならば。 –

+0

@Chrisが書いているように、 'sizeof((void *)x)'はvoidポインタのサイズを返します。 – Lou

答えて

0

問題は、デフォルトでは、私はそれはですので、問題は私ができるHEXADECIMALエディタを使用

発生した理由をバイナリモードで書き込むために、ファイルを開くこの場合、ASCIIコードと表示文字を検索するエディタを使用していましたバイナリファイルを開いて表示する

関連する問題