求解一个c语言函数返回结构体指针的问题

求解一个c语言函数返回结构体指针的问题,第1张

#include<stdioh>

#include<stringh>

#include<iostream>

#include<fstream>

#include<stdlibh>

using namespace std;

typedef struct point{                            //结构体设计

int A, B, C, a, b, c, id, n;

}point;

point ReadFile(){               

    static point ss[110];

    char data[50] = {'\0'};

    int m1 = 0, n = 0, k, i;

    for(int i = 0; i < 100; i++){

        ss[i]id=rand()%10;

        ss[i]A=rand()%10;

        ss[i]B=rand()%10;

        ss[i]C=rand()%10;

        ss[i]D=rand()%10;

        ss[i]E=rand()%10;

        ss[i]F=rand()%10;

    }    

    return ss;

}

void main(){

    point male[110], female[110], players[110];

    male = ReadFile();

}

ss是局部变量,有效范围只局限于定义ss的函数体内,即只在函数ReadFile里有效,函数返回后,ss就失效了。

你可以在ReadFile里定义ss的前面加上static修饰,表示这个是静态局部变量,静态局部变量的内存有效范围可以全局有效。

static point ss[110];

另外,结构体的typedef定义不完整。

不可以;下面两种都可以:

void reat(void)//无返回

{ }

 struct student creat(void)//返回值类型为struct student 类型指针

{ }

你的这种定义,编译器根本无法明白此函数是否有返回值。

函数调用结果的返回值,可以通过3个途径获得。

(1)函数自身返回

(2)通过函数参数返回

(3)通过全局量返回。

到底用那种方法,取决于程序员的考虑。

Node --通过 函数自身返回,返回一个结构指针,指向 Node 型结构。

int -- 通过 函数自身返回,返回一个整型量。

CreateLinkList 是建链表,返回Node 结构指针

GetElem 获取元素单元,返回Node 结构指针

InsertLinkList 用 int 表示插入成功或失败,或用 int 表示什么。

这些 都 取决于程序员的考虑。 没有绝对的规定。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12176633.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存