私のオペレーティングシステムコースの実践を進んでいますが、私はこの例の周りに頭を浮かべることはできません。私はプログラムを実行したが動作しません。 C動的割り当てmalloc struc
#include <stdio.h>
typedef struct {
int age;
float height;}Person;
void init(Person *);
int main() {
Person *Callum;
Callum = malloc(sizeof(*Callum));
init(Callum);
printf("Age: %d, height: %f\n", Callum.age, Callum.height);}
void init(Person * individual)
printf("Age: "); scanf("%d", &(individual->age));
printf("Height: "); scanf("%f", &(individual->height));}
は私が起こっていると思うかを説明しようとするつもりだとあなたは私のロジックを修正することができれば私は非常に感謝される:
- 私たちは、Person型のして、Callumと呼ばれるポインタを持っています。
- 'Callum = malloc(sizeof(* Callum));' =>これは、変数callumに、ヒープ上のstructのメモリサイズが割り当てられていることを意味しますか?
- 人は変数Callumを指しています。編集:私はそれを入力して混乱して申し訳ありません、私は個人が我々のstruc Personを指していることを意味します。
- プログラムは入力を読み込み、変数Callumの場所であるindividualのアドレスに割り当てます。次に、Callumの値を出力します。
申し訳ありませんが、これは私の脳を揺らしています。私はstrucとポインタの基本的な仕組みを知っていますが、私は何が起こっているかを視覚化することはできません。どんな助けもありがとう。ありがとうございました。あなたのコードで
"パーソン・ポイントへ..." - 'Person'は、そう間違っ*タイプ*、ではないポインタです。 – WhozCraig
変数名には小文字を使用してください –
この混乱は読めません。インデントサイトルについて学び、投稿前に「インデント」を使用します。 – Olaf