c语言的二级指针如何初始化了?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言的二级指针如何初始化了?相关的知识,希望对你有一定的参考价值。
争议对指针的理解不够深刻,首先指针也是一个变量。二级指针保存着是一级指针地址的变量,所以int**ppdata
=
null说明了 这个二级指针保存的是一个一级指针的地址,保存的地址是0;由于保护模式的缘故,(可自行查阅资料),ring3无法对保护段的内存进行读写,所以会出现运行时崩溃。而第一个没报错的原因是因为一级指针虽然初始化保存了0的地址,但是代码在之后的操对一级指针进行重新赋值让其指向了别的内存段。所以没报错。 参考技术A 二维指针初始化分配空间分成两步操作:
先分配二维指针的行数
再分配每行的数据空间
如:
int **p;
int n=10;
int m=100;
p=(int **)malloc( n*sizeof(int *) ); //分配n行
for( i=0;i
评论
0
0
0
加载更多 参考技术B 二维指针初始化分配空间分成两步操作:
1.
先分配二维指针的行数
2.
再分配每行的数据空间
如:
int **p;
int n=10;
int m=100;
p=(int **)malloc( n*sizeof(int *) ); //分配n行
for( i=0;i
评论
0
0
0
加载更多
以上是关于c语言的二级指针如何初始化了?的主要内容,如果未能解决你的问题,请参考以下文章
C 语言二级指针作为输入 ( 二维数组 | 二维数组遍历 | 二维数组排序 )
C 语言二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 )