鱼C论坛

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

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

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

  1. #include <stdio.h>
  2. #include <stdlib.h>

  3. typedef struct pNode
  4. {
  5.     int codf; // 系数
  6.     int exp;  // 指数
  7.     struct pNode *link;
  8. } PNode;

  9. typedef struct polynominal
  10. {
  11.     PNode *head;
  12. } Polynominal;


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


  15. int main(int argc, char const *argv[])
  16. {
  17.     Polynominal PS, *P;
  18.     P = &PS;
  19.     int num[6] = {1, 2, 2, 5, 5, 7};
  20.     P = &PS;
  21.     Init(P, num, 3);
  22.     Output(P);

  23.     Polynominal EX, *E;
  24.     int nums[6] = {1, 2, 2, 4, 5, 8};
  25.     // E = &EX;
  26.     // Init(E, nums, 3);
  27.     // Output(E);
  28.     return 0;
  29. }

  30. void Init(Polynominal *P, int *num, int length)
  31. {
  32.     P->head->codf = 0;
  33.     P->head->exp = -1;
  34.     P->head->link = NULL;

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

  43.         temp->link = node;
  44.         temp = node;
  45.     }
  46. }
  47. void Output(Polynominal *P)
  48. {
  49.     int flag = 0;
  50.     PNode *nowNode = P->head->link;
  51.     while (nowNode != NULL)
  52.     {
  53.         if (flag == 0)
  54.         {
  55.             if (nowNode->codf == 1)
  56.             {
  57.                 printf("x^%d", nowNode->exp);
  58.             }
  59.             else
  60.             {
  61.                 printf("%dx^%d", nowNode->codf, nowNode->exp);
  62.             }
  63.         }
  64.         else if (nowNode->codf < 0)
  65.         {
  66.             printf("%dx^%d", nowNode->codf, nowNode->exp);
  67.         }
  68.         else
  69.         {
  70.             if (nowNode->codf == 1)
  71.             {
  72.                 printf("+x^%d", nowNode->exp);
  73.             }
  74.             else
  75.             {
  76.                 printf("+%dx^%d", nowNode->codf, nowNode->exp);
  77.             }
  78.         }
  79.         nowNode = nowNode->link;
  80.         flag = 1;
  81.     }
  82.     printf("\n");
  83. }
  84. */
复制代码
最佳答案
2021-10-19 22:57:24
本帖最后由 jhq999 于 2021-10-20 11:08 编辑

结尾怎么加了个半拉注释符号 */
  1.    
  2.     PNode firstnd;//至少有一个实例吧,都是指针怎么行?
  3.     Polynominal PS, *P;
  4.     PS.head=&firstnd;
  5.     P = &PS;
  6.     int num[6] = {1, 2, 2, 5, 5, 7};
  7.     P = &PS;
  8.     Init(P, num, 3);
复制代码

[code]
屏幕截图 2021-10-19 225642.png

最佳答案

查看完整内容

结尾怎么加了个半拉注释符号 */ [code]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

结尾怎么加了个半拉注释符号 */
  1.    
  2.     PNode firstnd;//至少有一个实例吧,都是指针怎么行?
  3.     Polynominal PS, *P;
  4.     PS.head=&firstnd;
  5.     P = &PS;
  6.     int num[6] = {1, 2, 2, 5, 5, 7};
  7.     P = &PS;
  8.     Init(P, num, 3);
复制代码

[code]
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-20 12:16:30 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

[code]

感谢,最后*/是上传的时候没删干净,请问在创建Polynominal PS的时候PS不是实例吗
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

  1. typedef struct polynominal
  2. {
  3.     PNode *head;//这个指针需要实例
  4. } Polynominal;
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-10-20 13:22:58 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-26 00:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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