構造体にメモリを動的に割り当てるプログラムを作成する必要があります。通常使用します
x=malloc(sizeof(int)*y);
ただし、構造変数には何を使用しますか?できるとは思わない
struct st x = malloc(sizeof(struct));
誰かが私を助けてくれますか?ありがとう!
お気に入り:
#include <stdlib.h>
struct st *x = malloc(sizeof *x);
ご了承ください:
x
はポインターでなければなりませんあなたはまったく正しいことをしていません。 _struct st x
_は構造体であり、ポインターではありません。スタックに割り当てたい場合は問題ありません。ヒープに割り当てる場合は、struct st * x = malloc(sizeof(struct st));
。
struct st* x = malloc( sizeof( struct st ));
それは正確に可能です-そして正しい方法です
入力するつもりだったと仮定して
struct st *x = malloc(sizeof(struct st));
追伸すべてのコンテンツのサイズがわかっている場合でも、コンパイラが構造体をパディングしてメンバーが整列するため、sizeof(struct)を実行する必要があります。
struct tm {
int x;
char y;
}
サイズが異なる場合があります
struct tm {
char y;
int x;
}
これはする必要があります:
struct st *x = malloc(sizeof *x);
struct st *x = (struct st *)malloc(sizeof(struct st));