首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内存分配char*和char[]

内存分配char*和char[]
EN

Stack Overflow用户
提问于 2011-01-13 21:13:34
回答 3查看 7K关注 0票数 37

这两者在内存分配方面有什么不同。

代码语言:javascript
复制
char *p1 = "hello"; 
char p2[] = "hello";
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-01-13 21:17:10

第一个函数创建一个指针变量(四个或八个字节的存储空间,取决于平台),并在其中存储字符串文字的位置;第二个函数创建一个包含六个字符(包括零字符串终止符字节)的数组,并将文字复制到那里。

你应该在第一行得到一个编译器警告,因为文字是const

票数 40
EN

Stack Overflow用户

发布于 2011-01-13 21:16:05

第一个是指向const (只读)数据的非常数指针,第二个是非常数数组。

票数 8
EN

Stack Overflow用户

发布于 2011-01-13 21:21:00

由于第一个是指向const (只读)数据的非常数指针,第二个是非常数数组,正如Paul所说,您可以这样写:

代码语言:javascript
复制
p2[2]='A'; //changing third character - okay

但是你不能写:

代码语言:javascript
复制
p1[2]='A';//changing third character - runtime error!
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4680431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档