两次函数调用结果不一样
知识点是链表部分的以下是声明
#define OBJECT char name[]
#define null NULL
typedef struct node NODE;
struct node{
char name;
NODE *p;
};
static int size = 0;
static NODE *first = null;
static NODE *last = null;
static NODE nullNode = {"", null};
然后有这样3个方法
NODE getNode(OBJECT){
NODE temp = nullNode;
int i = 0;
while(temp.name = name){}
return temp;
}
void addFirst(OBJECT){
NODE node = getNode(name);
void toString();
size++;
if(!first){
first = &node;
last = first;
toString();
return;
}
node.p = first;
first = &node;
}
void toString(){
NODE node = *first;
printf("%s,%d\n", node.name, node.p);
printf("%s,%d\n", first ->name, first->p);
}
…………
然后调用addFirst时里面的toString输出是正常的,之后什么都不做,调用toString就全是烫了 问问题把代码上全好吧。
我也简单问下你
i = 1
i怎么就等于1了?????请帮忙解答下。
搞懂不懂在问问题的人这点基本的道理都不懂。 ba21 发表于 2020-2-20 20:04
问问题把代码上全好吧。
我也简单问下你
i = 1
我贴出的代码已经可以跑起来了,main方法也没调用其他的,难道除了贴主要代码,其他几百行无关紧要的也要贴出来?
而且我问题很清楚了。在addFirst里面不是调用了一次toString()么,我在调用addFirst()之后再调用一次toString()就不正常了。
下面这行代码和我的贴的有什么区别,就少了个头文件,你跟我说没贴全。
#include <stdlib.h>
#include <stdio.h>
#define OBJECT char name[]
#define null NULL
typedef struct node NODE;
struct node{
char name;
NODE *p;
};
static int size = 0;
static NODE *first = null;
static NODE *last = null;
static NODE nullNode = {"", null};
NODE getNode(OBJECT){
NODE temp = nullNode;
int i = 0;
while(temp.name = name){}
return temp;
}
void addFirst(OBJECT){
NODE node = getNode(name);
void toString();
size++;
if(!first){
first = &node;
last = first;
toString();
return;
}
node.p = first;
first = &node;
}
void toString(){
NODE node = *first;
printf("%s,%d\n", node.name, node.p);
printf("%s,%d\n", first ->name, first->p);
}
main(){
addFirst("123");
toString();
system("pause");
} 没有报错未声明码 卖橘子的柚子 发表于 2020-2-28 00:00
没有报错未声明码
没有啊
页:
[1]