c++指针作为形参常见问题--1
【错误案例1】 错误原因,函数createCharLink中定义的指针p虽然是在堆上申请的内存空间,但是函数createCharLink没有返回值,所以main函数中的指针p未定义,因此编译未通过。解决办法是,把指针p的声明放在main函数体外,紧跟结构体charlink的定义之后,并且仅仅在createCharLink函数中定义它。或者,把createCharLink更改为返回值为CharLink *类型的函数。 #include<iostream> #include<cstddef> #include<cstdio> #include<cstdlib> #include<cstring> using namespace std; typedef struct charlink { char ch; struct charlink *next; }CharLink; //CharLink *p; //在此处,取消注释这一句 void createCharLink(const char *str1) { CharLink *p = (CharLink*)malloc(sizeof(CharLink)); //删除或者注释掉这一句 // p = (CharLink*)malloc(sizeof(CharLink)); //修改办法,取消注释这一句 p->next=0; while(