に文字列を渡す私はこのような構造を持っている:のconstのvoid *のPARAM
typedef struct {
float batch;
float length;
uint32_t test;
char val[0];
}
PARAM;
をそして、この形式で関数を呼び出しています:
void fillValues(float val, float len, uint32_t tmp, const void* prw);
私は構造体を宣言し、いくつかのメモリを割り当てます:
PARAM *first = calloc(10, sizeof(PARAM));
functioを呼び出す前にfirst->data
の値を印刷すると問題が発生します。 nは予想通り、それは含まれていますが、私は関数を呼び出す場合:
fillValues (test, first->batch, first->length, first->test, &first->val);
と試してみて、内部のプリントPRWを、それは何が含まれていません。
私はchar配列として宣言されているため、関数のパラメータがconst void *であるため、値を間違って渡していると思います。 P.P. fucntionのparam型を変更したくありません。 PRWをfillValuesに使用される部分のみ
は二重に変換される:
double *value
value = (double*)first->data;
*value = *(const double*)pwr;
申し訳ありませんいくつかの愚かなタイプミス私の間違い – homeGrown
@homeGrownだからここでコードをコピー/貼り付け、それを再入力しないでください。 –
@Michael Walz巨大な関数なので無駄なコードを追加したくない – homeGrown