假设我做了类似的事情:
char* test[] = {"foo","bar","car"};
如果我做的很远,这到底等同于什么?这是自动创建我需要释放的内存吗?我只是有点困惑。谢谢。
最佳答案
您正在声明一个指针数组。指针指向字符串文字。
变量test
遵循正常规则,如果它是一个自动变量(某个函数内的范围),当超出函数时,它超出范围,所以你不必释放内存。如果它是静态分配的(全局或 static
变量),它的生命周期与程序一样长,因此您也不必释放内存。
指针指向的字符串文字具有静态存储,因此您也不要释放它们。
关于c - 我创建这个数组时分配的内存在哪里? (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19086769/