文章目录
- 一、二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 )
- 二、完整代码示例
一、二级指针案例 ( 返回自定义二级指针 | 精准控制内存大小 )
博客 【C 语言】二级指针案例 ( 字符串切割 | 返回 二维数组 作为结果 ) 中 , 使用 二维数组 , 接收字符串切割结果 ;
博客 【C 语言】二级指针案例 ( 字符串切割 | 返回 自定义二级指针 作为结果 ) 中 , 使用 自定义二级指针 , 接收字符串切割结果 ;
先分析出该 字符串中, 有多少个 逗号 字符 , 可以得到 二级指针 指向的 内存空间中 , 要存储多少 一级指针 , 也就是分析出有多少 行 , 然后在分析 每行 有多少列 , 即 为每个 一级指针 分配多少内存 ;
上述分配方式 , 能精准控制 内存 , 最大限度利用内存 ;
扫描
遍 ,
- 第一遍扫描 , 求出有多少个 一级指针 , 并为其分配内存 ;
- 第二次扫描 , 求出每个 一级指针 要分配多少内存 ;
第一次扫描 : 计算 要分割的字符串 个数 , 为其分配内存 ;
代码语言:javascript复制 // 第一次遍历 , 求出有多少行
do
{
// 字符串中, 查找 字符 ','
// 找到后 , 返回 逗号 第一次出现的指针
p1 = strchr(p1, c);
if (p1 != NULL)
{
// 将 p1 指针 与 p2 指针之间的 字符拷贝出来
// 这就是分割后的字符串
if (p1 - p2 > 0)
{
tmpcount ;
p1 = p2 = p1 1;
}
}
else
{
// 如果 p1 为 NULL , 说明没有找到逗号字符 , 退出循环即可
break;
}
} while (*p1 != '