而pChar3 本身是一个指针变量,存储在栈上,它指向常量区中的字符串。由于字符串字面量是只读的,所以通过 *pChar3 我们只能读取字符串的内容,而不能修改它。...,遵循先进后出(LIFO)的原则,大小有限,如果使用不当可能导致栈溢出
堆(Heap): 用于动态分配内存,存储动态分配的对象和数据结构,开发者需要手动管理堆上的内存,分配和释放,大小一般比栈要大得多,...注意:必须确保释放的内存块是之前使用malloc/calloc/realloc动态分配的。
如果ptr为NULL,则该函数不执行任何操作。...// 使用分配的内存
// ...
free(ptr); // 释放内存
// 不能再访问已释放的内存
常见注意要点:
动态分配的内存必须在使用完毕后及时释放,否则会导致内存泄漏。...不能访问已经释放的内存块,否则会出现未定义行为。
如果分配失败,这些函数会返回NULL指针,需要进行错误处理。