为什么出现这种地址错误的问题

 

SqStrack的定义是typedef Strack *SqStrack,它是一个Strack指针

在函数inite(SqStrack &l)里,形参l是一个Strack的二级指针,可能是在调用函数时填入的参数有问题。

引用&,它很像指针,但它和指针的区别是:

  • 不能是空引用
  • 创建时一定要初始化,指针可以任何时候初始化
  • 初始化后不能再更改,就是不能再去指向别的对象,指针可以在任何时候指向别的对象
#include <iostream>
#include <windows.h>
using namespace std;

typedef struct ss
{
	char* pC1;
	int a;
}*PSS;
#define N 10

void Test(PSS &pss)
{
	pss->pC1 = (char*)malloc(sizeof(char)*N);

}

int main() {

	struct ss sStr;
	PSS pS = &sStr;
	Test(pS);

	system("pause");
	
	return 0;
}

看不出什么问题,试了也没报错。清理一下重新生成试试。

或者是把完整代码贴上来,别截图。