| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 502 人关注过本帖
标题:返回结构体内定义的指针,子函数的头的返回类型的写法问题。
只看楼主 加入收藏
juliawen
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2017-11-23
结帖率:0
  已结贴   问题点数:10  回复次数:4   
返回结构体内定义的指针,子函数的头的返回类型的写法问题。
#include<stdio.h>
#include<stdlib.h>
struct list{
 int data;
 struct list*nextPtr;
};  //创建结构体。

//创建链表。
struct list *createList(void)
{
int num;
struct list*headPtr,*lastPtr,*currentPtr;
headPtr=NULL;
lastPtr=NULL;
currentPtr=NULL;
//存储数字,直到出现-1停止。
scanf("%d",&num);
while(num!=-1)
{
    currentPtr=malloc(sizeof(struct list));
    if(currentPtr!=NULL)
    {
        currentPtr->data=num;
        if(headPtr==NULL){
            headPtr=currentPtr;
            lastPtr=currentPtr;
                }
        else{
            lastPtr->nextPtr=currentPtr;
            lastPtr=currentPtr;
                }
    }
scanf("%d",&num);   
}   
lastPtr->nextPtr=NULL;
return headPtr;        
}

这是一个子函数,为了创建链表。我想要返回一个结构指针,(定义了结构struct list),返回指针headPtr。
想请问大神,struct list *createList(void) 这样写这个子函数的头对吗?可以直接改写为list *createList(void)吗??
(C语言新手,一个寒假没有上机,生疏了,请大佬指点!
2018-03-13 20:07
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
  得分:5 
可以这样写:
typedef struct list LIST;
然后就不需要struct了。
LIST* CREATELIST(void)

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-13 20:40
juliawen
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2017-11-23
  得分:0 
回复 2楼 lanke711
十分感谢您!
我的报错显示 18    undefined reference to `WinMain'
这是什么问题?函数头l类型选的不对吗?
2018-03-13 20:46
SMRen
Rank: 2
等 级:论坛游民
帖 子:9
专家分:42
注 册:2018-3-9
  得分:5 
我印象中有一个错误是  undefined reference to `WinMain@16'| ;在没有定义主函数main()时候会出这个错误。
2018-03-13 21:52
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
  得分:0 
回复 3楼 juliawen
创建控制台项目,选的是WIN32console application
创建标准windows程序,选的是win32 application

你创建的不是win32 控制台程序,请重新创建一个win32 控制台程序。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2018-03-13 21:56







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029300 second(s), 8 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved