2.申请两段内存,每段不超过设定值,但总和超过设定值。
[cpp] view plain copy p = (char *)malloc(sizeof(char)*3090); if(p== NULL) { printf("malloc error1\r\n"); } p2 = (char *)malloc(sizeof(char)*3090); if(p2== NULL) { printf("malloc error2\r\n"); }
3.申请一段内存,使用完毕后释放掉,然后再申请一段内存
[cpp] view plain copy p = (char *)malloc(sizeof(char)*3090); if(p== NULL) { printf("malloc error1\r\n"); } ... free(p); p2 = (char *)malloc(sizeof(char)*3090); if(p2== NULL) { printf("malloc error2\r\n"); } ... free(p2); 使用正常。 申请内存,使用完毕后要释放。 IAR设置堆栈大小 option->Linker -> Config -> Override default ->Edit。