柔性数组
在C99标准之后,在结构体中最后一个元素允许是未知大小的,称之为柔性数组
- 一般定义为:
- 类型 变量名[]
- 注意:
- 结构体中,柔性数组前必须有变量
- 柔性数组必须定义在结构体的最后
- 示例:
struct CoolArr_s{
int len;
char arr[];
};
- -
- 如果编译器报错,则考虑把最后的 char arr[] 尝试替换为一下几种写法:
- char arr[0]
- char arr[1] (非常不推荐,如果这样声明后使用时会被认为是越界行为)
- 如果编译器报错,则考虑把最后的 char arr[] 尝试替换为一下几种写法:
- 使用 malloc(sizeof(int) + sizeof(char) * 长度) 申请内存空间
- 示例:
#include "stdio.h"
#include "stdlib.h"
struct CoolArr_s
{
int len;
char arr[];
};
int main()
{
//这里给arr的长度为10个char的大小
struct CoolArr_s* p = (struct CoolArr_s*)malloc(sizeof(int) + sizeof(char) * 10);
for (int i = 10; i--;)
{
(p->arr)[i] = i + '0';
printf("%d " ,(p->arr)[i]);
}
printf("\n CoolArr_s: %d, *p: %d\n", sizeof(struct CoolArr_s), sizeof(*p));
return 0;
}
- 运行结果:
- 那么这和直接把它定义为指针有什么区别呢?或者说它有什么好处呢?
- 首先从上面的例子的运行结果可见,结构体 CoolArr_s 的大小就是 int len 的大小。也就是说,柔性数组 char arr[] 并不会占一个指针的大小。数组名 arr 是一个常量地址,这个地址是紧接着 int len 的后面的地址。(数组名和指针是不同的)
- 其次就是柔性数组的内存空间是和结构体连续的,而声明为指针时,其指向的数组内存空间和结构体极大概率不是连续的。这一点在给一些函数传值时是非常重要的区别,比如 linux中的消息队列 相关的函数。
在C++中的柔性数组
注意:在c++中并不建议使用柔性数组,而应考虑使用array代替。即使它可以使用在struct和class中,但部分编译器是不支持这种操作的。
- 截止至2022(C++20标准):
- 在g++中是可以使用柔性数组的
- 在VS2022的MSVC中使用柔性数组,虽然可以运行,但会有警告:
- warning C4200: 使用了非标准扩展: 结构/联合中的零大小数组
- warning C6011: 取消对 NULL 指针 “xxx” 的引用
- 所以在c++中应考虑使用array容器代替。
- 示例(使用array容器代替上面的例子):
#include <iostream>
#include <array>
using namespace std;
int main()
{
//数组长度
const int len_arr = 10;
//定义数组
array<int, len_arr> arr;
//array::data()返回数组的首地址
//array::begin()返回的是迭代器iterator
int *arr_p = arr.data();
for (int i = len_arr; i--;)
{
arr_p[i] = i;
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
солдаты сериал сезон серия – солдаты 9 сезон в хорошем качестве, солдаты сериал сезон серия
Привет, друзья!
Приобрести диплом любого университета.
xn--80aeahbdc6cr3b7h.xn--p1ai/club/user/8729/blog/193084/
Привет!
Приобрести документ ВУЗа можно у нас.
diploms-x.com/kupit-diplom-s-registraciej
excitement it brings to the table.
ivermectin for sale
франшиза
эксперт в области бизнеса
Здравствуйте!
Заказать документ ВУЗа можно в нашей компании в Москве.
ast-diploms24.ru/otzyvy
Хорошей учебы!
Привет, друзья!
Приобрести документ ВУЗа вы можете в нашей компании в Москве.
ast-diplomy.com/kupit-diplom-rostov-na-donu
Успешной учебы!
זהו שירות המספק את הצרכים של הגוף הגברי ואת המהות של להיות גבר. בילוי עם נערות ליווי בתל אביב מאפשר לגבר להשתחרר ולהתפרק. זוהי הגברים של העיר, החיילים המשרתים בסביבה וכל מי שאוהב עיסויים אירוטיים ופינוקים אינטימיים. דירות דיסקרטיות בבאר שבע מציעות helpful resources
click here for more info Twitter Provider
Привет, друзья!
Приобрести документ университета можно в нашем сервисе.
diplomasx.com/kupit-diplom-krasnodar
Привет, друзья!
Приобрести документ о получении высшего образования вы сможете у нас в столице.
ast-diplomy.com/kupit-diplom-chelyabinsk
chinaone.net
repairdesign24.com
casino game.
ivermectin purchase
Добрый день!
Как официально купить диплом вуза с упрощенным обучением в Москве
weekinato.ru/diplomyi-ot-luchshih-vuzov/
Привет, друзья!
Как получить диплом стоматолога быстро и официально
http://www.techhackly.xyz/2024/06/30/купить-дипломы-университета/
Добрый день!
Купить диплом ВУЗа.
http://www.cms-blog-news.de/modules.php?name=Journal&file=display&jid=209
Здравствуйте!
Заказать диплом университета.
vitz.ru/forums/index.php?autocom=gallery&req=si&img=3192
Здравствуйте!
Купить документ института можно у нас в столице.
diplomyx24.ru/kupit-diplom-nizhnij-novgorod
Успехов в учебе!
שאתה צריך זה להתמסר לצרכים של הגוף ולתת לנערות לעשות את העבודה. היצע הנערות המארחות בדירתן הוא יוצא דופן. דירות דיסקרטיות מתחשק לך לבלות וליהנות, ולעבור חוויה משחררת, זהו המקום שבו תוכל לקבל את מה שאתה רוצה. הצטרף לכל אותם גברים מרוצים המבקרים דירות Meet sexy escort girls in Tel Aviv to get pleasure
Привет, друзья!
Мы изготавливаем дипломы любой профессии по приятным тарифам.
mizunosoccershoesfans.com/read-blog/3329_gramotno-zakazyvaem-dokumenty-v-internete-avtorskij-obzor.html?mode=night
Strategies and Tips
ivermectin price
coindarwin price analysis
The Story About Solana’s Creator Toly Yakovenko’s Success
Subsequent to Two Servings of Java and a Ale
Toly Yakovenko, the brainchild behind Solana, commenced his path with a simple practice – a couple of coffees and an ale. Little did he realize, these instances would spark the cogs of his destiny. At present, Solana is as a formidable contender in the blockchain realm, having a billion-dollar market value.
Ethereum ETF First Sales
The Ethereum ETF newly started with an impressive trade volume. This landmark occasion witnessed numerous spot Ethereum ETFs from various issuers begin trading on American exchanges, injecting unseen activity into the typically steady ETF trading space.
SEC Approved Ethereum ETF
The SEC has formally approved the Ethereum exchange-traded fund to trade. Being a cryptographic asset with smart contracts, Ethereum is projected to deeply influence the digital currency industry thanks to this approval.
Trump and Bitcoin
As the election approaches, Trump presents himself as the “Crypto President,” constantly highlighting his advocacy for the cryptocurrency industry to garner votes. His tactic differs from Biden’s approach, intending to capture the attention of the crypto community.
Musk’s Influence on Crypto
Musk, a notable figure in the cryptocurrency space and a backer of the Trump camp, shook things up again, propelling a meme coin related to his antics. His actions continues to shape the market environment.
Binance’s Latest Moves
The subsidiary of Binance, BAM, is now allowed to use customer funds in U.S. Treasury securities. Additionally, Binance noted its 7th anniversary, highlighting its journey and securing multiple compliance licenses. Simultaneously, the firm also announced plans to remove several important cryptocurrency pairs, impacting various market participants.
AI and Economic Trends
A top stock analyst from Goldman Sachs recently stated that AI is unlikely to cause a revolution in the economy
Mostbet промокод казино при регистрации. Mostbet промокод казино при регистрации. Сайт Мостбет – это не только популярная букмекерская контора, но и казино, в котором можно играть как с машинами, так и с реальными крупье. Использовав промокод казино Mostbet, игрок получает денежные средства на бонусный счет. Это значит, что он может использовать их только для игры в слоты и другие азартные развлечения на сайте. Вывести деньги, выигранные с бонуса, игрок сможет только тогда, когда отыграет их согласно вейджеру. Сегодня в казино предусмотрены следующие бонусы за регистрацию и депозит: Все новые пользователи азартного заведения могут получить бездепозитный бонус. Промокод представляет собой комбинацию букв и чисел, которые позволят вам получить бонус. Если он актуальный, то сумма вашего депозита после пополнения увеличится на оговоренную в условиях получения промокода сумму. Есть и другой способ. Нередко мостбет промокод распространяют официальные партнеры компании Mostbet. Среди них могут быть группы и аккаунты в социальных сетях, которые связаны с прогнозированием событий или спортивные ресурсы.
Здравствуйте!
Мы готовы предложить дипломы любой профессии по выгодным ценам. Стоимость может зависеть от выбранной специальности, года получения и образовательного учреждения. Всегда стараемся поддерживать для заказчиков адекватную политику цен. Важно, чтобы документы были доступными для большого количества граждан.
vintfint.com/blogs/18832/Где-возможно-будет-диплом-купит%
йЊЇиЄ¤
жіЁж„Џ
Привет!
Мы готовы предложить дипломы любой профессии по выгодным ценам.
mjcs-ikma.com/2024/06/30/купить-диплом-казахстан/
Добрый день!
Мы можем предложить дипломы любой профессии по доступным ценам.
wpfreelance.boxthemes.net/диплом-магистра-2014-20242024-фото/
з‡’е‚·
天
players globally. The Aviator Game stands out in this crowded market due to its innovative gameplay and the
cheap ivermectin
Привет!
Удивительно, но купить диплом кандидата наук оказалось не так сложно
http://www.ledshtech.com/купить-диплом-молдавии/
然後
йѓЁй•·
помещение для переговоров oborudovanie-peregovornyh-komnat.ru .
追蹤
оборудование для переговорных оборудование для переговорных .
Offre speciale 1x pari code promo vous offre une remise de 100% sur le montant total de votre premier depot jusqu’a 100$, bien entendu, dans votre devise locale. Profitez-en facilement en saisissant le code promotionnel lors de votre inscription et recevez un bonus sur 1xbet.com.
помещение для переговоров oborudovanie-peregovornyh-komnat.ru .
ж»
переговорные комнаты под ключ переговорные комнаты под ключ .
姓名
переговорные комнаты москва переговорные комнаты москва .
微笑
Future of the Aviator Game
where to buy ivermectin
Здравствуйте!
Всё, что нужно знать о покупке аттестата о среднем образовании
hi-fi-forum.net/profile/957272
Рады оказаться полезными!.
幫助
оснащение переговорных оснащение переговорных .
מלאים. נערות ליווי בתל אביב הן ההזדמנות שחיפשת בשביל להגשים את עצמך ואת כל החשקים שלך. זוהי ההזדמנות לעשות את כל מה שחלמת עליו הגברים של העיר, החיילים המשרתים בסביבה וכל מי שאוהב עיסויים אירוטיים ופינוקים אינטימיים. דירות דיסקרטיות בבאר שבע מציעות מכון ליווי בחיפה – כל הסיבות לרצות!