好的,所以我对c中的结构是全新的,并且我有一个对我来说似乎很陌生的问题。
当使用它的指针将简单的结构传递给函数时,该结构会自动接受该函数的其他参数之一,因为它是新数据。我不知道为什么会发生这种情况.. 在这一刻move_walker()应该什么都不做,对吧?奇怪的问题在c中使用结构指针
typedef struct {
int x,
y;
} walker_t;
walker_t* init_walker(int x, int y) {
walker_t walker;
walker.x = x;
walker.y = y;
walker_t *pointer = malloc(sizeof(walker));
pointer = &walker;
return pointer;
}
int move_walker(walker_t * walker, int direction) {
return 0;
}
walker_t* walker;
walker = init_walker(8,2);
printf("%d %d\n", walker->x, walker->y); //will print '8 2'
move_walker(walker, 3);
printf("%d %d\n", walker->x, walker->y); //will print '0 3'
(我敢肯定,它不事关,但是这个代码实际上扩展到了多个文件。)
您有一个错字;-) change pointer =&walker; * pointer = walker; – qPCR4vir 2013-02-19 12:03:36
你为什么决定为此使用动态内存分配? – Lundin 2013-02-19 12:56:58