#include <stdio.h>
#include "stdlib.h"
#include "string.h"
int getMemory(char ***p,int num){
int i = 0;
char **tmp = NULL;
if (p == NULL) {
return -1;
}
tmp = (char **)malloc(sizeof(char *)*num);
if (tmp == NULL) {
return -2;
}
for (int i = 0; i<num; i++) {
tmp[i] = (char*)malloc(sizeof(char) *100);
sprintf(tmp[i], "%d",i+1);
}
*p = tmp;
return i;
}
int freeMenmory(char ***p,int num){
char **tmp = NULL;
if (p == NULL) {
return -1;
}
tmp = *p;
for (int i = 0; i<num; i++) {
free(tmp[i]);
}
free(tmp);
*p = NULL;//把实参赋值成NULL
return 0;
}
int main(int argc, const char * argv[]) {
// insert code here...
printf("Hello, World!\n");
char **p2 = NULL;//二级指针
int num = 5;
p2 = (char **)malloc(sizeof(char **)*num);
// printf("char **---->%d",sizeof(long **));// long long 指针变量占用的字节数也是8个字节.
for (int i = 0; i<5; i++) {
p2[i] = (char *)malloc(sizeof(char) *100);//这里是100个字节大小注意
sprintf(p2[i], "%d%d%d",i+1,i+1,i+1);
}
/**
* 排序之前
*/
char *tmp;
printf("排序之前\n");
for (int i = 0; i<num; i++) {
printf("%s\n",p2[i]);
}
/*
for (int i = 0; i<num; i++) {
for (int j = i+1; j<num; j++) {
if (strcmp(p2[i],p2[j])<0) { //比较大小
tmp = p2[i];
p2[i] = p2[j];
p2[j] = tmp;
}
}
}*/
tmp = malloc(sizeof(char) *100);//要分配内存
for (int i = 0; i<num; i++) {
for (int j = i+1; j<num; j++) {
if (strcmp(p2[i],p2[j])<0) { //比较大小
// tmp = p2[i];
// p2[i] = p2[j];
// p2[j] = tmp;
strcpy(tmp, p2[i]);
strcpy(p2[i], p2[j]);
strcpy(p2[j], tmp);
}
}
}
printf("排序之后\n");
for (int i = 0; i<num; i++) {
printf("%s\n",p2[i]);
}
//释放内存
for(int i = 0;i<num;i++ ){
if (p2[i] != NULL) {
free(p2[i]);
p2[i] = NULL;
}
}
char ***p = malloc(100);
getMemory(p, 10);
for (int i = 0; i<10; i++) {
printf("%s\n",p[i]);
}
return 0;
}
一个二级指针排序练习
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- /*关于指针数组记号,及指针函数参数,的自我编写代码练习*/ #include #include #include...
- 一、指针运算 二、数组与指针 三、指针和函数参数 四、指针数组 五、 二级指针 六、知识要点 1、C语言中的函数如...
- 一、指针运算 二、数组与指针 三、指针和函数参数 java中: C/C++中: 四、指针数组 五、 二级指针 六、...