1

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

4

4 回答 4

4

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);
于 2012-09-20T17:31:39.897 回答
3

你需要分配d一些有效的东西。你必须给它一些记忆。现在它是一个typ没有指向任何东西的类型的指针。然后你试图尊重什么。

将堆中的一些内存分配给您的指针并按原样使用它:

typ *d = malloc(sizeof(typ)); 
d->strukcje = 1;
free(d);

或者在堆栈上放置一个静态副本:

typ d;
d.strukcje = 1; 
于 2012-09-20T17:32:17.323 回答
0

正确的代码是:

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;

}
于 2012-09-20T17:34:57.663 回答
0

尝试这个:

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);
}
于 2012-09-20T17:36:51.610 回答