C char** 的一点儿理解
来源:互联网 发布:郑州淘宝运营 编辑:程序博客网 时间:2024/05/16 10:56
理解是就是char** 相当于字符串数组,我以往纠结于该用 **arr还是*arr还是 (*arr),还是(**arr);
对于**arr而言:*arr代表数组的最开头,也就是第一个字串的内容。**arr代表什么,不知道,这么用会报错。
简单的来说arr[0],代表第一个字符串的值,实际指向的整个**arr的首地址,如果用printf之类的处理函数,会把它之后的地址的内容也打印出来,直到找到0。
下面是一个分割字符串的代码,l会保存分割出来的长度。
2014-09-09 结构体数组处理:http://blog.csdn.net/leinchu/article/details/11559547
字符串以为数组实际是2维字符数组,但结构提1维数组就只需要一维——这个问题我没认识清楚,受字符串数组的迷惑,走了不少弯路。
char** split(char *strin, char *seprator, int *l, int max) {char **rtn;rtn = (char **) malloc(sizeof(char **));char *str = strdup(strin);char *str0 = str;char *p;p = strstr(str, seprator);if (p == NULL) {*l = 1;*rtn = str;return rtn;}int i, len, spl, inlen, plen;spl = strlen(seprator);max--;*l = 0;while (p != NULL) {if (*l > 0)rtn = realloc(rtn, ((*l) + 1) * sizeof(char **));inlen = strlen(str);plen = strlen(p);if (!plen)break;len = inlen - plen;rtn[*l] = malloc(len + 1);strncpy(rtn[*l], str, len);rtn[*l][len] = 0;str += (len + spl);p = strstr(str, seprator);(*l)++;if (*l == max || p == NULL) {/*if (*l == max) {len = strlen(rtn[*l - 1]) + strlen(str) + 1;rtn[*l - 1] = realloc(rtn[*l - 1], len);strncat(rtn[*l - 1], str, len - 1);} else {*/len = strlen(str);rtn = realloc(rtn, ((*l) + 1) * sizeof(char **));rtn[*l] = malloc(len + 1);strncpy(rtn[*l], str, len);rtn[*l][len] = 0;//}(*l)++;break;}}free(str0);return rtn;}
0 0
- C char** 的一点儿理解
- 我对[单身]的一点儿理解
- 对 protected 的一点儿新理解
- 对COM基本思想的一点儿理解
- nlp语义理解的一点儿看法
- 【C/C++】对char* 和 char[]区别的一些理解
- 对C和C++的一点儿认识
- 对 c\c++ char类型的理解
- c++ c串的理解 char*
- 对 c\c++ char类型的理解
- C语言中 char * char [] char*[] char**以及指针的理解
- 关于C语言的指针部分的一点儿小启示
- 对 objective-c 内存管理的一点儿认识
- 对 objective-c 内存管理的一点儿认识
- 对 objective-c 内存管理的一点儿认识
- c++main(int argc,char *argv[])的理解
- 对C语言中补码和char数据类型的理解
- 深入 理解char * ,char ** ,char a[ ] ,char *a[] 的区别
- QQ空间登陆参数2147483647分析
- ffmpeg使用fPIC静态库解决记录
- linux shell awk获得外部变量(变量传值)简介
- C++ traits特性
- Maven环境变量的配置
- C char** 的一点儿理解
- 《Programming in Lua 3》读书笔记(二十一)
- 可以复制粘贴的控件CCEditBox代码示例
- 我的博客开通啦
- JQUERY 的autocomplete UI自动完成控件的运用以及ajax的使用
- Android中Bitmap,byte[],Drawable相互转化
- 守护线程
- 对象的克隆——原型模式
- jbpm+ssh框架案例