用户:
CaTional查看:3 回复:1 评论:3 创建时间:2021-04-03T14:52:21
当你还在用char去节省内存的时候。有的人已经像用string那样去使用char了。 好吧不云了。这里就是要用指针干动态分配内存。 上一节说过了所谓的内存。如果你还没知道内存的原理和指针的基本作用可以去社区搜:【C语言】指针1 这里先放申请内存的语法 void*malloc(intnum);//在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。 void*calloc(intnum,intsize);//在内存中动态地分配num个长度为size的连续空间,并将每一个字节都初始化为0。所以它的结果是分配了num*size个字节长度的内存空间,并且每个字节的值都是0。 以上为百度内容,实战才是最重要的! #include<stdio.h> #include<stdlib.h> #include<string.h> intmain() { char*p; p=(char*)malloc(10*sizeof(char)); strcpy(p,"pointer"); printf("%s",p); free(p); } 这里先是定义了一个叫p的指针。然后用malloc去申请了一块长度为10的内存。通过strcpy将“pointer”复制到内存里。 最后就是输出内存里的内容和释放内存了。 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<stdio.h> intmain() { char*p; p=(char*)malloc(10*sizeof(char)); scanf("%s",p); printf("%s",p); free(p); getchar(); } 这里稍稍作了改进,使你可以输入并返回指定数量的字符串。 在实战中第二部分的代码更有实用价值