六级指针小试牛刀

#include<stdio.h>
void f(char *******p)
{
	char *str1 = "abc";
	char *temp = NULL;
	temp = (char *)malloc(10*sizeof(char));
	memset(temp, 0, 10);
	strcpy(temp, str1);
	//*temp = 10;
	*p = temp;
}
void main()
{
	char ******p1=NULL;
	char *******p2=NULL;

	p2 = &p1;
	f(p2);
	printf("%s", p1);
	system("pause");
}

六级指针小试牛刀,布布扣,bubuko.com

时间: 2024-09-29 11:32:44

六级指针小试牛刀的相关文章

《征服 C 指针》笔记6:练习——挑战那些复杂的声明

应该是小试牛刀的时候了. 在 ANSI C 的标准库中,有一个 atexit()函数.如果使用这个函数,当程序正常结束的时候,可以回调一个指定的函数. atexit()的原型定义如下: int atexit(void (*func)(void)); 1.首先着眼于标识符. int atexit(void (*func)(void)); 英语的表达为: atexit is 2.解释用于函数的(). int atexit(void (*func)(void)); 英语的表达为: atexit is

C++ 虚基类表指针字节对齐

下面博客转载自别人的,我也是被这个问题坑了快两天了,关于各种虚基类,虚继承,虚函数以及数据成员等引发的一系列内存对齐的问题再次详细描述 先看下面这片代码.在这里我使用了一个空类K,不要被这个东西所迷惑,我使用这个空类的目的主要是为了让它产生虚基类表指针而又不引入虚基类成员变量,这样我就可以少叙述一些关于虚基类成员排放的东西,而将焦点聚集在引入的那个虚基类表指针之上.这个空类虽然有点特殊,但是在这里它其他的东西和正常的类一样,不要纠结这个.还有,代码我直接指定了对齐参数,是为了不引起混乱. #in

C++虚基类表指针字节对齐模型

关于虚基类表指针/虚函数表指针这些类里面的"隐藏成员"在结构里面是如何进行字节对齐的这个问题困惑了我48个小时.虽然网上也有很多关于虚继承.虚函数表.虚基类等内存布局的一些文章,但是基本上谈的都是大致的布局,什么地方有什么,按照什么顺序来排放等这些泛泛而谈的东西,好像都没有把字节对齐方面考虑进去的文章,或许他们都没有考虑到一些复杂层次的类继承关系,从而字节对齐的问题也没有成为问题,也自然而然地会被忽略掉,或者得出错误的对齐规则结论. 也许是我一开始就走错了路,在错误中越走越远,尝尽了各

小试牛刀之反转字符串

最近玩儿python玩上瘾了,突然想念c语言,所以,休闲下:解法一:如果没有对申请外部空间有所限制,那就先试试这个喽: 1 void invert_str1(char *old_str, char *new_str) 2 { 3 int i = strlen(old_str)-1; 4 int j = 0; 5 if (old_str == NULL) printf("error!"), exit(1); 6 bzero(new_str, sizeof(new_str)); 7 for

一文学会链表快慢指针解题技巧

前言 上文 我们详细地学习了链表的基本概念,优缺点,也带大家一步步由浅入深地学习了链表的翻转技巧,这一篇我们来看看链表的另一个解题技巧:快慢指针. 快慢指针在面试中出现的概率也很大,也是务必要掌握的一个要点,本文总结了市面上常见的快慢指针解题技巧,相信看完后此类问题能手到擒来.本文将详细讲述如何用快慢指针解决以下两大类问题 寻找/删除第 K 个结点 有关链表环问题的相关解法 寻找/删除第 K 个结点 小试牛刀之一 LeetCode 876:给定一个带有头结点 head 的非空单链表,返回链表的中

[c/c++] programming之路(17)、高级指针

一.二级指针 二级指针的作用:1.函数改变外部变量指针2.外挂改变一个指针的值 1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void main(){ 5 int a = 10; 6 int b = 20; 7 int *p1 = &a; 8 int *p2 = &b; 9 int **pp = &p1; 10 printf("%d,", **pp); 11 printf("\n%x,

C++学习笔记----2.4 C++引用在本质上是什么,它和指针到底有什么区别

从概念上讲.指针从本质上讲就是存放变量地址的一个变量,在逻辑上是独立的,它可以被改变,包括其所指向的地址的改变和其指向的地址中所存放的数据的改变. 而引用是一个别名,它在逻辑上不是独立的,它的存在具有依附性,所以引用必须在一开始就被初始化,而且其引用的对象在其整个生命周期中是不能被改变的(自始至终只能依附于同一个变量). 在C++中,指针和引用经常用于函数的参数传递,然而,指针传递参数和引用传递参数是有本质上的不同的: 指针传递参数本质上是值传递的方式,它所传递的是一个地址值.值传递过程中,被调

【转】父类子类指针相互转换问题

1.当自己的类指针指向自己类的对象时,无论调用的是虚函数还是实函数,其调用的都是自己的: 2.当指向父类对象的父类指针被强制转换成子类指针时候,子类指针调用函数时,只有非重写函数是自己的,虚函数是父类的: 3.当指向子类对象的子类指针被强制转换成父类指针的时候,也就是父类指针指向子类对象,此时,父类指针调用的虚函数都是子类的,而非虚函数都是自己的. 将上面三句话总结成一句话就是:当父类子类有同名非虚函数的时候,调用的是转换后的指针类型的函数: 当父类子类有同名虚函数的时候呢,调用的是指针转换前指

C++ Primer 学习笔记与思考_7 void和void*指针的使用方法

(一)void的含义 void的字面意思是"无类型",void差点儿仅仅有"凝视"和限制程序的作用,由于从来没有人会定义一个void变量,让我们试着来定义: void a; 这行语句编译时会出错.提示"illegal use of type 'void'".只是.即使void a的编译不会出错.它也没有不论什么实际意义. void真正发挥的作用在于: (1) 对函数返回的限定: (2) 对函数參数的限定. int f(void); equal t