私はまだC言語のノブです。私はそれを定期的に使用しますが、一般的にCのポインタ機能は使用しません。は、関数内のローカル空間にすでに存在する構造体へのポインタを渡します。C言語のポインタとローカル変数をポインタとして渡す方法
struct WorldCamera p_viewer;
struct Point3D_LLA p_subj;
struct Point2D_CalcRes p_res;
p_viewer.hfov = 25;
p_viewer.vfov = 25;
p_viewer.p.lat = 10.0f;
p_viewer.p.lon = 10.0f;
p_viewer.p.alt = 100.0f;
p_subj.lat = 9.98f;
p_subj.lon = 10.0f;
p_subj.alt = 100.0f;
// Do something interesting here.
compute_3d_transform(&p_viewer, &p_subj, &p_res, 10000.0f);
// Do something interesting here.
compute_3d_transformのプロトタイプはこれです:
void compute_3d_transform(struct WorldCamera *p_viewer, struct Point3D_LLA *p_subj, struct Point2D_CalcRes *res, float cliph);
私はこの権利を持っているかどうかを知りたい私はこのコードを持っています。私は多くのメモリ保護を持っていないと思う小さなマイクロコントローラでプログラミングしています。 1つのメモリを破壊すると、将来デバッグが困難な奇妙なバグが発生する可能性があります。私はこれらが専用のヒープを必要とするので、malloc/calloc関数の使用を避けようとしています。
あなたは私にそれを得たように見えます。 – sizzzzlerz