[疑难问答] C语言使用二维指针编写程序接口

[复制链接]
2565|8
 楼主| albertaabbot 发表于 2024-2-18 20:27 | 显示全部楼层 |阅读模式
用二维指针编写接口可以避免有些类型的return出错的问题

#include <stdio.h>

void test(char **string)
{
        *string = "hello world";
}
int main()
{
        char *str = NULL;
        test(&str);
        printf("str=%s\n",str);

        getchar();
        return 0;
}
结果:

具体分析如下图:

过程:
1.定义一个字符串指针str,str本身的地址是100,值为0(即NULL,一般的编译器NULL的地址是0)。
2.取str的地址100传给string,此时string的值是100,地址为200
3.这里假设“hello world”字符串的地址是300,接下来就是改变一级指针指向的内容的地址,由0变成300
pl202 发表于 2024-3-4 14:51 | 显示全部楼层
在C语言中,二维指针是一个指向指针的指针,它可以用来表示二维数组或者动态分配的二维数据结构。
chenci2013 发表于 2024-3-5 21:18 | 显示全部楼层
在C语言中,二维数组的名字在表达式中会被隐式地转换为其首地址(即指向第一行的指针),所以在传递给函数时可以直接传二维数组的名字,无需显式解引用。
updownq 发表于 2024-3-10 15:52 | 显示全部楼层
在使用二维指针时,需要动态分配内存来存储二维数组的元素。
usysm 发表于 2024-3-11 17:38 | 显示全部楼层
二维指针是指向指针的指针,可以用来表示二维数组。
jtracy3 发表于 2024-3-11 22:48 | 显示全部楼层
使用二维指针时需要注意内存管理,避免内存泄漏和越界访问等问题。
sheflynn 发表于 2024-3-15 17:09 | 显示全部楼层
可以使用二维指针来处理多维数组。对于二维数组,我们可以将其看作是一个指向一维数组的指针。
pixhw 发表于 2024-3-23 19:07 | 显示全部楼层
在C语言中,二维指针可以用来指向多维数组,它实际上指向数组的第一个元素,该元素本身是一个指向数组的指针。这样的接口设计可以提供对多维数组灵活的操作。
uiint 发表于 2024-4-15 21:39 | 显示全部楼层
二维指针的使用使得对多维数组的操作更加直观和方便,特别是在需要显式地处理数组的行和列时。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

13

主题

1562

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部