- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的错!!我曾假设以下摘自一本臭名昭著但广受欢迎的书的摘录是完全有效的 C。但直到今天我才被指出它充满了 UB(尽管我还没有找到为什么会这样) .因此这是书中的特定部分。如果你能以编号的方式指出每个特定陈述的错误或 UB,以及适当的更正那些。
char *p = "Hello" ; /* pointer is variable, so is string */
*p = 'M' ; /* works */
p = "Bye" ; /* works */
const char *q = "Hello" ; /* string is fixed pointer is not */
*q = 'M' ; /* error */
q = "Bye" ; /* works */
char const *s = "Hello" ; /* string is fixed pointer is not */
*s = 'M' ; /* error */
s = "Bye" ; /* works */
char * const t = "Hello" ; /* pointer is fixed string is not */
*t = 'M' ; /* works */
t = "Bye" ; /* error */
const char * const u = "Hello" ; /* string is fixed so is pointer */
*u = 'M' ; /* error */
u = "Bye" ; /* error */
最佳答案
char *p = "Hello"
"Hello" 是放置在实现只读内存中的字符串文字,以任何可能的方式修改它都是 UB。无论您将 const
限定符放在哪里,任何修改字符串文字的尝试都是 UB。在 C++ 中表示它的正确方法是:
const char *p = "Hello";
char *p = "Hello" ;
指针可以重置,但字符串不应该被修改。
const char *q = "Hello" ;
char const *s = "Hello" ;
在 C++ 中表示指向字符串文字的指针的正确方法。可以重新设置指针,但不应修改字符串。
char * const t = "Hello" ;
指针不能复位,字符串不能修改。
const char * const u = "Hello" ;
指针是常量,字符串也是。
任何修改其中任何字符串的尝试都是 UB。
关于c - 这 5 种无数种声明/初始化常量限定指针的方法有什么问题?(摘自一本可疑但受欢迎的书),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16266204/
继this q about GADTs之后,我正在尝试构建一个 EDSL(对于本文中的示例),但没有 GADT。我已经找到了一些可以避免 AST 数据类型加倍的方法;但相反,它似乎将代码加倍。所以我尝
我正在使用 compose 实现 MVI。为了让我遵循正确的事件循环,我需要通过我的 View 模型传播点击事件,然后观察副作用。我看过一些实现,它们都使用 LaunchedEffect(true)
有没有办法使用Python对日志文件中的“可疑时间”进行有效的二进制搜索? 我有一个日志文件,其条目如下: 02:38:18 0 RcvTxData - 11 : Telegram receive
一些黑客可以访问我的数据库,我将找出漏洞;我无权访问服务器日志。我制作了这段代码来保存文本文件中的可疑查询: function query($query) { $file = 'sqllog.txt'
问题背景: 日常对Sql Server 2005关系数据库进行操作时,有时对数据库(如:Sharepoint网站配置数据库名Sharepoint_Config)进行些不正常操作如数据库在读写时而无
1、出错情况 有些时候当你重启了数据库服务,会发现有些数据库变成了正在恢复、置疑、可疑等情况,这个时候DBA就会很紧张了,下面是一些在实践中得到证明的方法。 在一次重启数据
我在尝试解决这段短代码中的运行时段错误时遇到了麻烦。我怀疑这与代码中使用 system() 和 strcpy() 有关,但由于我没有遇到此类错误的经验,所以我不确定该怎么做,而且到目前为止我还没有找到
我正在尝试按照 NutchTutorial 运行基本爬网: bin/nutch crawl urls -dir crawl -depth 3 -topN 5 所以我已经安装了 Nutch,并使用 So
我注意到,当我通过浏览器打开 CSS 时,我看到我所有的图像都预先设置了一些 IP。它看起来像这样: url(http://64.19.142.11/www.mydomain.com/i/pgBg.p
我是一名优秀的程序员,十分优秀!