3

申し訳ありませんが、この小さなことを検索したところ、以下のリンクに関連するものが見つかりましたが、何もわかりませんでした

  1. 後で使用するためにフロートを配列に格納する方法は?

  2. unsigned char配列への格納

float 値を格納する方法は、後でメモリ バッファに格納するために使用される unsigned char に 0.00895 を想定します。

その後、配列を読み戻す必要があり、メモリから読み返したいと考えています。

ありがとう

4

2 に答える 2

4

これは必要ありませんmemcpy...これは、float配列をメモリ内の別の場所のバッファにコピーする場合に役立ちます。本当に必要なのは、別のポインタ型を使用して文字配列を調べることだけです。

const size_t BUFSIZE = 4096;
char buffer[BUFSIZE];
float *f_buf = (float*)buffer;

バッファの先頭にフロートを1つ貼り付けるだけの場合は、次の2行のいずれかで問題ありません。

*f_buf = 0.00895;

f_buf[0] = 0.00895;

実際に行っているのは、バッファをfloatの配列として表示できるようにすることだけです。

int i;

/* Put a bunch of floats into the buffer */
for( i = 0; i < 10; i++ ) {
    f_buf[i] = i / 2;
}

/* Display contents of buffer in hex */
for( i = 0; i < 10 * sizeof(float); i++ ) {
    printf( "%02x", (int)buffer[i] );
}
printf( "\n" );

/* Sanity-test the buffer contents */
for( i = 0; i < 10; i++ ) {
    printf( "%d: %f\n", i, f_buf[i] );
}
于 2012-11-12T23:18:27.663 に答える
2

float のメモリを char バッファにコピーできます。

float a;
char buffer[sizeof(float)];
memcpy(buffer,&a,sizeof(float));
于 2012-11-12T22:15:01.217 に答える