流程图真的是搞不懂,脑子不够用了,之前也没画过,有没有人会的呀
开头结尾两个圆圈
分支、循环判断菱形
顺序执行方框
用箭头连接
代码都有了,你告诉我你哪里不会,我朋友小孩4岁都会。
静态区,栈我们我们在编写程序的时候都会涉及到,定义一个全局变量,就存放在了静态区,在函数内部定义了一个局部变量,就存放在了栈,那堆呢?堆什么时候会使用到呢?假设现在有这样一个程序。
int main(void)
{
char *buffer[3] = {NULL};
char *string1 = "hello";
char *string2 = "word";
char *string3 = "wenzi";
buffer[0] = (char *)malloc(strlen(string1) + 1);
if (buffer[0] != NULL)
strcpy(buffer[0],string1);
buffer[1] = (char *)malloc(strlen(string2) + 1);
if (buffer[1] != NULL)
strcpy(buffer[1],string2);
buffer[2] = (char *)malloc(strlen(string3) + 1);
if (buffer[2] != NULL)
strcpy(buffer[2],string3);
}
可以看到上述代码的意思是将string1
、string2
、string3
三个字符串复制到 buffer 所在内存位置,但是这个时候,如果不给数组的元素分配一定大小的内存,那么可能就放不下拷贝进去的字符串,因此在往里面拷贝字符串时,应该提前开辟出一段内存空间出来,这个时候,就需要使用到 malloc 来进行内存分配,当然所对应的,当这个数组使用完之后,需要使用 free
来将分配的内存释放掉,否则就会造成内存泄漏
。