c - 静态指向内存的位置

标签 c pointers

我读到 malloc() 和 calloc() 传递的指针从堆中动态分配内存。

char *Name="Ann";
  1. 在这种情况下,静态字符串{'A','n','n','\0'}是否也存储在堆中?
  2. 我可以使用指针修改字符串吗?

最佳答案

  1. 不,字符串是静态分配的。 (C99,§6.4.5/5)
  2. 尝试修改字符串文字会产生未定义的行为。 (§6.4.5/6)

关于c - 静态指向内存的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3682186/

相关文章:

c - _memccpy 的宽字符版本

c - 如何将 void** 数组(函数的返回值)分配给变量?

java - 获取指向持久对象的指针

c# - IntPtr 和 UIntPtr 的区别

c - 为什么在 C 中不允许指向数组的第一个元素之前的一个?

c - 在 MPI 中打印一次结果

c - 当我输入 case 触发器时,switch 语句注册为默认值

c - FILE 和 *fp 翻译

c - C 中的指针数组结构

c - 这些C指针操作会不会出问题?