博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二级指针的三种内存模型
阅读量:5216 次
发布时间:2019-06-14

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

第一种内存模型:

/* Module:		二级指针第一种内存模型.cpp Notices:		Copyright (c) 2017 Landy Tan*/#include 
using namespace std;/#define SIZE(a) sizeof(a) / sizeof(a[0])int SortArray(char **pArray, int nLen);int OutputArray(char **pArray, int nLen);/int main(){ char* pArray[] = { "333", "111", "444", "222", "666" }; cout << "Before sorting..." << endl; OutputArray(pArray, SIZE(pArray)); SortArray(pArray, SIZE(pArray)); cout << "After sorting..." << endl; OutputArray(pArray, SIZE(pArray)); system("pause"); return 0;}/int SortArray(char **pArray, int nLen){ if (pArray == NULL || nLen <= 0) return -1; for (int i = 0; i < nLen; i++) { for (int j = i; j < nLen; j++) { if (strcmp(*(pArray + i), *(pArray + j)) > 0) { // Modify the pointer to the point. char *pTmp = *(pArray + i); *(pArray + i) = *(pArray + j); *(pArray + j) = pTmp; } } } return 0;}/int OutputArray(char **pArray, int nLen){ if (pArray == NULL || nLen <= 0) return -1; for (int i = 0; i < nLen; i++) cout << *(pArray + i) << endl; return 0;} End of File

  

 

第二种内存模型:

/* Module:		二级指针第二种内存模型.cpp Notices:		Copyright (c) 2017 Landy Tan*/#include 
using namespace std;/#define SIZE(a) sizeof(a) / sizeof(a[0])int SortArray(char(*pArray)[30], int nLen);int OutputArray(char(*pArray)[30], int nLen);/int main(){ char pArray[][30] = { "333", "111", "444", "222", "666" }; cout << "Before sorting..." << endl; OutputArray(pArray, SIZE(pArray)); SortArray(pArray, SIZE(pArray)); cout << "After sorting..." << endl; OutputArray(pArray, SIZE(pArray)); system("pause"); return 0;}/int SortArray(char(*pArray)[30], int nLen){ if (pArray == NULL || nLen <= 0) return -1; for (int i = 0; i < nLen; i++) { for (int j = i; j < nLen; j++) { if (strcmp(*(pArray + i), *(pArray + j)) > 0) { // Modify the data pointed to by the pointer. char sz[30] = { 0 }; strcpy_s(sz, *(pArray + i)); strcpy_s(*(pArray + i), *(pArray + j)); strcpy_s(*(pArray + j), sz); } } } return 0;}/int OutputArray(char(*pArray)[30], int nLen){ if (pArray == NULL || nLen <= 0) return -1; for (int i = 0; i < nLen; i++) cout << *(pArray + i) << endl; return 0;} End of File

  

 

 

第三种内存模型:

/*Module:			二级指针第三种内存模型.cppNotices:		Copyright (c) 2017 Landy Tan*/#include 
using namespace std;/int SortArray(char **pArray, int nLen);int OutputArray(char **pArray, int nLen);int NewBuffer(char ***pBuf, int nLen1, int nLen2);void DeleteBuffer(char ***pBuf, int nLen1);/int main(){ char **pBuf; NewBuffer(&pBuf, 5, 30); if (pBuf == NULL) { cout << "New buffer error." << endl; system("pause"); return -1; } strcpy_s(*(pBuf + 0), 30, "333"); strcpy_s(*(pBuf + 1), 30, "111"); strcpy_s(*(pBuf + 2), 30, "444"); strcpy_s(*(pBuf + 3), 30, "222"); strcpy_s(*(pBuf + 4), 30, "666"); cout << "Before sorting..." << endl; OutputArray(pBuf, 5); SortArray(pBuf, 5); cout << "After sorting..." << endl; OutputArray(pBuf, 5); DeleteBuffer(&pBuf, 5); system("pause"); return 0;}/int SortArray(char **pArray, int nLen){ if (pArray == NULL || nLen <= 0) return -1; for (int i = 0; i < nLen; i++) { for (int j = i; j < nLen; j++) { if (strcmp(*(pArray + i), *(pArray + j)) > 0) { } } } return 0;}/int OutputArray(char **pArray, int nLen){ if (pArray == NULL || nLen <= 0) return -1; for (int i = 0; i < nLen; i++) cout << *(pArray + i) << endl; return 0;}/int NewBuffer(char ***pBuf, int nLen1, int nLen2){ if (pBuf == NULL || nLen1 <= 0 || nLen2 <= 0) return -1; char **p = *pBuf; p = new char*[nLen1]; for (int i = 0; i < nLen1; ++i) { p[i] = new char[nLen2]{ 0 }; } *pBuf = p; return 0;}/void DeleteBuffer(char ***pBuf, int nLen1){ if (pBuf == NULL) return ; char **p = *pBuf; for (int i = 0; i < nLen1; i++) { delete[] p[i]; p[i] = NULL; } delete[] p; p = NULL; *pBuf = p; return;} End of File

  

转载于:https://www.cnblogs.com/LandyTan/p/6828182.html

你可能感兴趣的文章
android smack MultiUserChat.getHostedRooms( NullPointerException)
查看>>
递归-下楼梯
查看>>
实用的VMware虚拟机使用技巧十一例
查看>>
监控工具之---Prometheus 安装详解(三)
查看>>
Azure Iaas基础之---创建虚拟机
查看>>
不错的MVC文章
查看>>
网络管理相关函数
查看>>
IOS Google语音识别更新啦!!!
查看>>
20190422 T-SQL 触发器
查看>>
[置顶] Linux终端中使用上一命令减少键盘输入
查看>>
poj1422_有向图最小路径覆盖数
查看>>
BootScrap
查看>>
[大牛翻译系列]Hadoop(16)MapReduce 性能调优:优化数据序列化
查看>>
WEB_点击一百万次
查看>>
CodeForces - 878A Short Program(位运算)
查看>>
路冉的JavaScript学习笔记-2015年1月23日
查看>>
Mysql出现(10061)错误提示的暴力解决办法
查看>>
2018-2019-2 网络对抗技术 20165202 Exp3 免杀原理与实践
查看>>
NPM慢怎么办 - nrm切换资源镜像
查看>>
CoreData 从入门到精通(四)并发操作
查看>>