如何在C ...中返回指向结构的指针?

时间:2017-04-11 16:37:16

标签: c

我是C编程新手.... 这是我的示例代码....

我想编写一个应该返回结构指针的函数...当我编译下面的代码时...我得到了分段错误..... 我知道,我正在做一些小错误......对这个问题的任何建议对我都有帮助......

#include<stdio.h>

struct point *test(int x, int y);

struct point {
int x;
int y;
};


int main() {

struct point* val2;

int xx, yy;

xx = 1;

yy = 2;

val2 = test(xx, yy);


 }

struct point *test (int xx, int yy) {

struct point *a;

a->x = xx;

a->y = yy;

return (a);

}

使用Makefile

CC = gcc

Phony = .clean

main: main.o
    $(CC) $< -o $@
main.o: main.c
    $(CC) -c $<
clean:
    rm *.o 

收到的输出:

 Segmentation fault(Core dumped)

1 个答案:

答案 0 :(得分:1)

谢谢大家的建议。

此代码取代了问题....

struct point *test (int xx, int yy) {
  struct point *a = malloc(sizeof *a); 
  a->x = xx;
  a->y = yy;
return (a);
}