I',m probably doing some incredibly stupid mistake, but i cannot find it, it is simple that:
int main()
{
typedef struct drzemka typ;
struct drzemka {
int strukcje;
};
typ *d;
d->strukcje = 1;
}
and it is not working
Right now your pointer is not set to a valid piece of memory. You need to allocated this memory for the struct
:
#include <stdlib.h>
/* ... */
typ *d = malloc(sizeof(typ));
As with any memory you allocate, remember to free it after you're done:
free(d);
你需要分配d
一些有效的东西。你必须给它一些记忆。现在它是一个typ
没有指向任何东西的类型的指针。然后你试图尊重什么。
将堆中的一些内存分配给您的指针并按原样使用它:
typ *d = malloc(sizeof(typ));
d->strukcje = 1;
free(d);
或者在堆栈上放置一个静态副本:
typ d;
d.strukcje = 1;
正确的代码是:
struct drzemka {
int strukcje;
};
typedef struct drzemka typ;
int main()
{
typ d;
d.strukcje = 1;
}
或者
int main()
{
typ* d = (typ *) malloc(sizeof(typ));
d->strukcje = 1;
}
尝试这个:
typedef struct drzemka {
int strukcje;
}typ;
int main() {
typ d;
typ * p = &d;
p->strukcje = 1;
printf("The value of strukcje is %d",p->strukcje);
}