#include <stdio.h>
#include <string.h>
int main(int argc, char** argv)
{
int maxLen=0;
//N = argc;
char **ptr = NULL;
int i = 0;
//============以下程序是为了求出argv[][]数组中最长的串长度,把最长串长度保存在maxLen里
maxLen=strlen(argv[0]);
for (i = 1; i < argc; i++)
{
maxLen = maxLen > strlen(argv[i])?maxLen:strlen(argv[i]);
}
//maxLen自增,是为了多出一个位置以便存放字符串结束符'\0'
maxLen++;
//printf("====%d==\n",maxLen);
//先申请一个含有argc个char *指针的二级指针空间,然后再给每个ptr[i]指针申请长度为maxLen的指针空间。
ptr = (char **)malloc(sizeof(char *) * argc);
for (i = 0; i < argc; i++)
{
ptr[i] = (char *)malloc(sizeof(char) * maxLen);
}
//把**argv的内容拷贝到**ptr指向的空间
for (i = 0; i < argc; i++)
{
strcpy(ptr[i],argv[i]);
}
for(i = 0; i < argc; i++)
{
printf("argv[%d]=%s\n",i,argv[i]);
}
//用完后注意free指针空间
for(i = 0; i < argc; i++)
{
free(ptr[i]);
}
free(ptr);
ptr = NULL;
return 0;
}
分享到:
相关推荐
二级指针申请空间.txt
二级指针简单内存模型,在堆区maollc分配内存,free释放内存。将申请内存空间、释放内存空间、排序、打印接口进行了封装。
a)在堆空间申请一个普通变量(栈内变量:int n=-1;) int* p = (int*)malloc(sizeof...e)在堆空间中申请一个指针数组:(char* ss[10]={ ”abc”, ”dd”, ”aaa”};) char* *p = (char**)malloc(sizeof(char*) * 4);
def是一个二级指针,它指向的是一个一维数组的指针,数组的元素都是float. (2)double*(*gh)[10]; gh是一个指针,它指向一个一维数组,数组元素都是double*. (3)double(*f[10])(); f是一个数组,f有10个元素,元素都是...
成员名 例如:boy1.num 即第一个人的学号 boy2.sex 即第二个人的性别 如果成员本身又是一个结构则必须逐级找到最低级的成员才能使用。例如:boy1.birthday.month 即第一个人出生的月份成员可以在程序中单独使用,与...
6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器报错了。 6.19 我怎样编写接受编译时宽度未知的二维数组的函数? 6.20 我怎样在函数参数传递时混用静态和动态多维数组? 数组的大小 6.21 当...
动态申请内存空间和释放内存空间的操作。 ⑽ 预处理和标准函数 掌握:宏定义、宏调用、宏展开;文件包含中各头文件的使用。 理解:格式输出函数printf及其格式说明的格式字符;格式输入函数scanf及其格式说明...
这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 27 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的...
进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。 每个进程有一个进程控制块( PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要...
块式管理:把主存分为一大块、一大块的,当所需的程序片断不在主存时就分配一块主存空间,把程 序片断load入主存,就算所需的程序片度只有几个字节也只能把这一块分配给它。这样会造成很大的浪费,平均浪费了50%的...
1.11.2,节省空间,避免不必要的内存分配,同时提高效率.................................... 35 1.12,最易变的关键字----volatile................................ 36 1.13,最会带帽子的关键字----extern.........
o 7.15 当我向一个接受指针的指针的函数传入二维数组的时候, 编译器报错了。 o 7.16 我怎样编写接受编译时宽度未知的二维数组的函数 ? o 7.17 我怎样在函数参数传递时混用静态和动态多维数组 ? o 7.18 当数组...
【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和 B 3.计算机算法指...
4.1 我想声明一个指针并为它分配一些空间, 但却不行。这些代码有 什么问题?char *p; *p = malloc(10); . . . . . . . . . . . . . . . . 17 4.2 *p++ 自增p 还是p 所指向的变量? . . . . . . . . . . . . . . . . ...
同样,当本文件为文件夹时,为它申请相应的空间,AFD为空。以此来达到无穷级别目录的存储。 struct UFD { UFD *parent; UFD *leftchild; UFD *rightchild; UFD *folder; //作为文件夹时指向下一层,文件时为空 UFD *...
设计容: 为LINUX 设计一个简单的二级文件系统。本文件系统采用类似DOS系统的文件管理方式,每次调用 该文件系统时,首先申请一定的存空间,然后对该存空间进行分配。将申请到的空间划 分为目录区,文件区;采用位示...
(申请空间利用位示图修改FAT) DEL:搜索所要删除的文件是否存在,若是则删除;(恢复位示图修改FAT) DIR:列出当前目录的所有目录项。 4、在创建文件的时候分配空闲的磁盘空间,采用显示链接的方式,利用文件分配...