лишний кусок памяти, выделяемой в конце любого массива, когда их размер определяется?
Нет. Контекст, который вы цитировали, важен. Исключение, выделенное жирным шрифтом, относится к арифметике указателей (и отношениям). Он говорит, что если вы делаете указательные отношения между указателями, которые делают не, то указывайте на членов того же массива, затем получите udb. Однако есть одно исключение, которое есть, если любой из указателей указывает на первый элемент за концом массива.
Если да, то с какой целью?
null
ответ, так как он предполагает ложное помещение.
Заканчивается ли массив нулевым символом?
No.
Причина этого заключается в том, так что сравнение с конца массива является законным, то есть сравнение с &a[sizeof a]
когда a
является массивом. Обратите внимание, что &a[sizeof a]
- это первый элемент за концом массива.Если p
является указателем на элемент a
или также первым элементом за конец массива, то p
можно сравнить с &a[sizeof a]
.
Я цитирую из раздела C99 specification, раздел 6.5.8.5.
При сравнении двух указателей результат зависит от относительных местоположений в адресном пространстве объектов, на которые указывает. Если два указателя на объект или неполные типы указывают на один и тот же объект или оба указывают один за последним элементом одного и того же объекта массива, они сравнивают равные. Если объекты, на которые указывают, являются членами одного и того же совокупного объекта, указатели на элементы структуры, объявленные позже, сравниваются больше, чем указатели на элементы, объявленные ранее в структуре, а указатели на элементы массива с большими значениями индекса сравниваются больше, чем указатели на элементы одного и того же массива с нижними значениями индекса. Если выражение P
указывает на элемент объекта массива, а выражение Q
указывает на последний элемент одного и того же объекта массива, выражение указателя Q + 1
сравнивает более P
. Во всех остальных случаях поведение не определено.
Простейший способ понять это: a [b] = a + b. Посмотрите на страницу 98 для объяснения – SheetJS
@Nirk: А? Что это связано с этим? – jason