2022-10-21 C语言二级指针( 双重指针 )常见用法,实例测试-传入一维指针地址可以取出函数内部申请的动态内存,取出变量值。

一、二级指针也叫二重指针,实际应用中常用作函数参数,通过使用双指针改变实参的值,这里我在分析gpio-leds驱动的时候看到下面的代码,传入一维指针地址可以取出函数内部申请的动态内存,取出变量值。

二、实例测试

#include <stdio.h>
#include <stdlib.h>
#include "string.h"

void Func(int** pp){
    int* p = malloc(sizeof(int));
    *p = 100;
    *pp = p;
    printf("&p=%p\tp=%p\t*p=%d\n",&p,p,*p);
}

void read_string( const char **propname){
	
    char * b = (char*)malloc(sizeof(char) * 10); //必须采用动态分配的方式
    strcpy(b,"heartbeat");
    *propname = b;
}

int main(){
	const char *state = NULL;
    int *p = NULL;
    Func(&p);
    printf("&p=%p\tp=%p\t*p=%d\n",&p,p,*p);
	
	read_string(&state);
	printf("state=%s\n",state);	
	
    free(p);

    p = NULL;
}

三、参考文章

(688条消息) C语言双指针的使用_BLAZAR'的博客-CSDN博客

C进阶3:二维指针 - 简书 (jianshu.com)

(688条消息) C语言双指针的常见用法_JANYI2018的博客-CSDN博客_c语言双重指针

猜你喜欢

转载自blog.csdn.net/qq_37858386/article/details/127448002