- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
This document是 C# 语言规范的一部分,它表示如果在 null/空数组引用上使用 C# 中 fixed
的行为是实现定义的。引用它:
An expression of an array-type with elements of an unmanaged type T, provided the type T* is implicitly convertible to the pointer type given in the fixed statement. In this case, the initializer computes the address of the first element in the array, and the entire array is guaranteed to remain at a fixed address for the duration of the fixed statement. The behavior of the fixed statement is implementation-defined if the array expression is null or if the array has zero elements.
但是,它没有对空字符串做出相同的声明,只是说如果字符串为 null,则行为未定义。下一段将详细介绍它如何处理字符串:
An expression of type string, provided the type char* is implicitly convertible to the pointer type given in the fixed statement. In this case, the initializer computes the address of the first character in the string, and the entire string is guaranteed to remain at a fixed address for the duration of the fixed statement. The behavior of the fixed statement is implementation-defined if the string expression is null.
所以如果我没看错的话,这意味着行为是为空字符串定义的,对吧?那么,如果你做类似的事情会发生什么
fixed (char* pch = string.Empty)
{
Console.WriteLine((int)*pch);
}
?是否保证打印出 0,因为 .NET 中的字符串以 null 结尾?是否所有 ECMA 335 实现(例如 Microsoft 的 CLR、Mono)都要求字符串以 null 结尾?
谢谢。
最佳答案
是的,由于 18.6 后面的位,它保证打印出 0:
A
char*
value produced by fixing a string instance always points to a null-terminated string. Within a fixed statement that obtains a pointer p to a string instance s, the pointer values ranging fromp
top + s.Length - 1
represent addresses of the characters in the string, and the pointer valuep + s.Length
always points to a null character (the character with value '\0').
我不能说我在 Mono 上试过这个,但如果是这样的话,那肯定是一个不合规的问题。 ECMA 标准中的文本与 MS 规范中的文本相同。 (C# 2 版本中的第 27.6 条;在 C# 5 版本中看起来像是 24.7。)
关于C#:固定语句对空字符串的行为是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37757751/
我正在尝试用 Java 构建一个字符串,该字符串的长度最多为 3,最少为 1。 我正在根据整数数组的内容构建字符串,如果数组的内容为 -1,我想在字符串中输出一个空字符。否则字符串将包含整数的字符版本
我有一个类,其中有一个方法可以在字符串中包含 NUL 字符的情况下终止程序。具体表达是这样的: stringVar.indexOf('\u0000') < 0 这个字符串是通过 Scanner 从用户
我有一个 wchar_t 数组。我需要在数组中的特定位置添加一个 unicode 空字符。 wchar_t var1[100]; var1[79] = '\u0000'; 我尝试了上面的方法,但出现以
好吧,这听起来可能是重复的,但我已经尝试了所有可能性,例如 str.strip()、str.rstrip()、str.splitline (),还 if-else 检查像: if str is not
System.out.println("-----------------------------------------------------------"); System.out.pr
我有一个奇怪的问题。我从公司内部的许多不同应用程序接收数据,并将这些数据显示在网站上。根据发送数据的系统,数据本身可能在字符串中包含一些奇怪的字符。我的问题是我有一个用户可以搜索以允许其中包含此数据的
我遇到了 aSSL ,这似乎有几年历史了,想知道是否有人有其他“安全”AJAX 连接代码示例?显然,这不如使用 SSL 证书安全,但使用 null character SSL在那里进行攻击(最近针对
我有一个类似于以下内容的 pyspark 数据框: df = sql_context.createDataFrame([ Row(a=3, b=[4,5,6],c=[10,11,12], d='b
我有以下要执行的查询: MyModel.objects.annotate(current_name=Coalesce('nickname', 'name')).order_by('current_na
每当 rails 变量等于 nil(或者实际上每当我使用 rails 代码(参见第 3 个代码示例))时,我的 html 中就会得到一串空字符。 new.html.haml %h1.editable.
我是一名优秀的程序员,十分优秀!