指针需要初始化。你的p没有初始化。
初始化 p = NULL;还是会中断,问题应该出现*p2 = p1;这里
@吾谨受教!: p = NULL 就不是初始化啦!!你没有初始化指针,他的值就是NULL,你赋值NULL是没用的。
char **p;
p = new char[100];
@Shendu.cc: 对,你说的对!
@Shendu.cc: 应该是没有给p分配内存空间,是这样吧
@吾谨受教!: 是的,初始化就是分配内存空间。
1.解决报错的改正是 char **p=NULL; 另*p2 = p1; 改为p2 = &p1 即可.
中断原因是 p2=p=NULL; 则p2指向空,无法存储p1;
2.从你写程序的目的来看是指针p进入函数的目的是获取申请的动态空间
所以感觉最好的改正方式是char *p = NULL; t(&p);
int main(){
char *p ;
t(&p);
return 0;
}
指针最好初始化 但语言规范里没有确定的要求
你传递给函数t的并不是一个指针, 而是一个随机整型值, 传递指针必须用取地址符号 &