鱼C论坛

 找回密码
 立即注册
查看: 1226|回复: 5

[已解决]多个指针时报错

[复制链接]
发表于 2021-10-19 22:57:23 | 显示全部楼层 |阅读模式
60鱼币
下面是代码,几个函数是没问题的,当我在主函数只声明一个Polynominal时都没有问题,但把我主函数里面注释的一句及之后打开后就会报错
报错图片在下面。
大佬求助。
#include <stdio.h>
#include <stdlib.h>

typedef struct pNode
{
    int codf; // 系数
    int exp;  // 指数
    struct pNode *link;
} PNode;

typedef struct polynominal
{
    PNode *head;
} Polynominal;


void Init(Polynominal *, int[], int); // 初始化
void Output(Polynominal *);           // 输出


int main(int argc, char const *argv[])
{
    Polynominal PS, *P;
    P = &PS;
    int num[6] = {1, 2, 2, 5, 5, 7};
    P = &PS;
    Init(P, num, 3);
    Output(P);

    Polynominal EX, *E;
    int nums[6] = {1, 2, 2, 4, 5, 8};
    // E = &EX;
    // Init(E, nums, 3);
    // Output(E);
    return 0;
}

void Init(Polynominal *P, int *num, int length)
{
    P->head->codf = 0;
    P->head->exp = -1;
    P->head->link = NULL;

    PNode *temp = P->head;
    for (int i = 0; i < length; i++)
    {
        // 创建pnode节点
        PNode *node = (PNode *)malloc(sizeof(PNode));
        node->codf = num[2 * i];
        node->exp = num[2 * i + 1];
        node->link = NULL;

        temp->link = node;
        temp = node;
    }
}
void Output(Polynominal *P)
{
    int flag = 0;
    PNode *nowNode = P->head->link;
    while (nowNode != NULL)
    {
        if (flag == 0)
        {
            if (nowNode->codf == 1)
            {
                printf("x^%d", nowNode->exp);
            }
            else
            {
                printf("%dx^%d", nowNode->codf, nowNode->exp);
            }
        }
        else if (nowNode->codf < 0)
        {
            printf("%dx^%d", nowNode->codf, nowNode->exp);
        }
        else
        {
            if (nowNode->codf == 1)
            {
                printf("+x^%d", nowNode->exp);
            }
            else
            {
                printf("+%dx^%d", nowNode->codf, nowNode->exp);
            }
        }
        nowNode = nowNode->link;
        flag = 1;
    }
    printf("\n");
}
*/
最佳答案
2021-10-19 22:57:24
本帖最后由 jhq999 于 2021-10-20 11:08 编辑

结尾怎么加了个半拉注释符号 */
   
    PNode firstnd;//至少有一个实例吧,都是指针怎么行?
    Polynominal PS, *P;
    PS.head=&firstnd;
    P = &PS;
    int num[6] = {1, 2, 2, 5, 5, 7};
    P = &PS;
    Init(P, num, 3);
[code]
屏幕截图 2021-10-19 225642.png

最佳答案

查看完整内容

结尾怎么加了个半拉注释符号 */ [code]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-19 22:57:24 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jhq999 于 2021-10-20 11:08 编辑

结尾怎么加了个半拉注释符号 */
   
    PNode firstnd;//至少有一个实例吧,都是指针怎么行?
    Polynominal PS, *P;
    PS.head=&firstnd;
    P = &PS;
    int num[6] = {1, 2, 2, 5, 5, 7};
    P = &PS;
    Init(P, num, 3);
[code]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-20 12:16:30 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-20 12:17:07 | 显示全部楼层
jhq999 发表于 2021-10-19 22:57
结尾怎么加了个半拉注释符号 */

[code]

感谢,最后*/是上传的时候没删干净,请问在创建Polynominal PS的时候PS不是实例吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-20 12:32:50 | 显示全部楼层
本帖最后由 jhq999 于 2021-10-20 12:34 编辑
海绵布丁 发表于 2021-10-20 12:17
感谢,最后*/是上传的时候没删干净,请问在创建Polynominal PS的时候PS不是实例吗

typedef struct polynominal
{
    PNode *head;//这个指针需要实例
} Polynominal;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-20 13:22:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-22 17:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表