gpt4 book ai didi

c - 表达式必须具有指针类型

转载 作者:行者123 更新时间:2023-11-30 14:28:44 29 4
gpt4 key购买 nike

我遇到了一个问题,程序给出了类似“表达式必须有指针类型”的错误。你能帮我吗?

struct stack{
int i_data;
char c_data;
struct stack *next;
}top;

void push_i(struct top *newptr,int info){

newptr=(struct top*)malloc(sizeof(top));

if(newptr!=NULL){
top->c_data=NULL;
newptr->i_data=info;
newptr->next=*top;
*top=newptr;
}

最佳答案

  • 您将类型 结构堆栈变量 top
  • 您的 top 变量不是指针,您无法更改它指向的内容。
  • c_data 不是指针,因此请勿为其分配 NULL
  • 您没有将传递的 newptr 用于任何有用的用途 - 它应该是一个局部变量。

这可能效果更好:

struct stack{
int i_data;
char c_data;
struct stack *next;
};

...
struct stack * top = NULL;
...
void push_i(int info){

struct stack * newptr=(struct stack*)malloc(sizeof(struct stack));

if(newptr!=NULL){
top->c_data=0;
newptr->i_data=info;
newptr->next=top;
top=newptr;
}

关于c - 表达式必须具有指针类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5611066/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com