浏览 4079 次
锁定老帖子 主题:给二级指针申请空间
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-07-18
最后修改:2010-02-21
#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; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-10-09
哇!这样都可以阿?让我大开眼界了。。
|
|
返回顶楼 | |
发表时间:2009-10-12
二级指针就是"指向指针的指针"吧?
楼主的分享不错,以前挺迷糊的. |
|
返回顶楼 | |
发表时间:2010-01-01
給指針的指針分配內存很容易寫錯,如果沒有編譯器來調試代碼的話,更容易出錯!
|
|
返回顶楼 | |