博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言malloc指针转化和动态开辟二维数组(day_8)
阅读量:2432 次
发布时间:2019-05-10

本文共 1800 字,大约阅读时间需要 6 分钟。

//1、malloc指针转化#include 
#include
int main() {
char* p[5]; char arr[5][10] = {
"hello", "abc", "world", "ab", "wangdao" }; int i, j, count; char* tmp; char** p2; //向这个空间中的元素存储指针,存储为char* //使用动态的指针数组,必须把一级指针强转成二级指针 p2 = (char **)malloc(count * sizeof(char*)); //将void*指针强转成二级指针 for (i = 0; i < 5; i++) {
p[i] = arr[i]; } return 0;}//2、动态开辟二维数组#include
int main() {
int iRow; char (*p)[10]; scanf("%d", &iRow); //堆区开辟二维数组的使用 p =(char(*)[10])malloc(10 * iRow); //需要用到数组指针 strcpy(p[0], "lili"); strcpy(p[1], "xiongda"); return 0;}//3、函数指针void fnPrinta() {
printf("I am fnPrinta\n");}void fnPrintb(void (*p)()) {
p(); //调用你传递给它的行为}typedef void (*pfunc)();void f1() {
putchar(1);}void f2() {
putchar(2);}void f3() {
putchar(3);}#include
int main() {
void (*p)(); //需要给函数传递一个行为时就需要使用函数指针 pfunc funcArr[3] = {
f1, f2, f3}; //函数指针数组 for (int i = 0; i < 3; i++) {
funcArr[i](); //循环在执行定义的三个函数 } p = fnPrinta; fnPrintb(p); return 0;}//4、函数的嵌套调用#include
#include
jmp_buf envbuf; //jmp_buf为一个结构体,用来存储寄存器之前的一个状态void b() { printf("I am func b\n"); longjmp(envbuf,2); //回到envbuf保存的状态,第二个参数是setjmp的返回值,由自己定义} //但不能填0,如果填0,setjmp返回值强制转成1void a() { printf("before b, I am func a"); b(); printf("finish b, I am func a\n"); //不会打印这句话}int main() { int ret; //存储返回值,第一次setjmp的返回值为0,后面的返回值是longjmp的参数值 ret = setjmp(envbuf); //将目前的状态存到envbuf中 if (ret == 0) { a(); } return 0;}//将jmp_buf envbuf定义为局部变量的实现方式#include
#include
void b(jmp_buf envbuf) { printf("I am func b\n"); longjmp(envbuf, 2); } void a(jmp_buf envbuf) { printf("before b, I am func a"); b(); printf("finish b, I am func a\n"); }int main() { jmp_buf envbuf; int ret; ret = setjmp(envbuf); if (ret == 0) { a(envbuf); } return 0;}

转载地址:http://zxxmb.baihongyu.com/

你可能感兴趣的文章
刷屏了!这篇 Python 学习贴,90% 的程序员都用的上!
查看>>
漫画:如何给女朋友解释什么是适配器模式?
查看>>
拒绝与其他码农一致!CSDN定制T让你成为最靓的仔
查看>>
程序员情商低?看完这 4 类程序员我懂了!
查看>>
《长安十二时辰》里你不能不知道的 IT 技术 | 每日趣闻
查看>>
程序员爬取 3 万条评论,《长安十二时辰》槽点大揭秘!
查看>>
一年参加一次就够,全新升级的 AI 开发者大会议程出炉!
查看>>
基于 XDanmuku 的 Android 性能优化实战
查看>>
基于嵌入式操作系统的物联网安全
查看>>
一个只有 99 行代码的 JS 流程框架
查看>>
移动周刊第 186 期:移动 App 客户端性能优化、iOS 开源库源码解析
查看>>
包学会之浅入浅出 Vue.js:开学篇
查看>>
JavaScriptCore 全面解析 (上篇)
查看>>
移动周刊第 187 期:App 模块化实战经验总结
查看>>
以不一样的视角看物联网协议
查看>>
JavaScriptCore全面解析 (下篇)
查看>>
嵌入式操作系统与物联网演进之路
查看>>
苹果公司揭秘首批列入 Swift 源代码兼容性开源项目清单
查看>>
Python 玩转物联网之 Micropython GPIO IRQ 处理
查看>>
移动周刊第 188 期:Android 安全性要点与规范核心详析
查看>>