[c/c++]柔性数组

/ 14,130评论 / 68215阅读 / 0点赞

柔性数组

在C99标准之后,在结构体中最后一个元素允许是未知大小的,称之为柔性数组

struct CoolArr_s{
	int len;
	char arr[];
};
#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;
}

在C++中的柔性数组

注意:在c++中并不建议使用柔性数组,而应考虑使用array代替。即使它可以使用在struct和class中,但部分编译器是不支持这种操作的。

#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;
}
  1. Diplomi_zuol说道:

    Привет!
    Купить документ о получении высшего образования вы можете в нашей компании.
    ast-diplom.com/kupit-diplom-perm 

  2. Diplomi_veol说道:

    Привет, друзья!
    Приобрести документ института можно в нашем сервисе.
    ast-diploms.com/kupit-diplom-krasnodar 

  3. RobertLAr说道:

    п»їpaxlovid: Paxlovid over the counter – paxlovid for sale

  4. 1winJdksj15vab说道:

    1win вход для бесперебойной игры.

  5. 1winYhfk468nok说道:

    1вин регистрация занимает всего несколько минут и открывает доступ ко всем функциям.

  6. DichaelDuh说道:

    Hi there! Do you know if they make any plugins to assist with Search Engine Optimization? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very good gains. If you know of any please share. Thank you!
    официальный сайт Rio Bet Casino

  7. Mazryqh说道:

    Здравствуйте!
    Всё, что нужно знать о покупке аттестата о среднем образовании
    http://www.horn-fahrzeugaufbereitung.de/купить-дипломы-олимпиад.html

  8. Ismaelenriz说道:

    For latest information you have to visit web and on internet I found this site as a best web page for newest updates.
    официальный сайт Rio Bet Casino

  9. Sazrzxj说道:

    Привет!
    Мы изготавливаем дипломы любой профессии по разумным тарифам. Цена будет зависеть от определенной специальности, года выпуска и ВУЗа. Всегда стараемся поддерживать для заказчиков адекватную ценовую политику. Важно, чтобы документы были доступны для большинства наших граждан.
    kinogonews.ru/diplom-v-odin-klik-prosto-i-dostupno

  10. Martinmaync说道:

    Полеты на параплане в Анапе – Экскурсии в Анапе, Морская рыбалка в Анапе

  11. Dnrtajp说道:

    Привет!
    Приобрести документ института можно у нас.
    ast-diploms24.ru/kupit-diplom-moskva
    Хорошей учебы!

  12. Lazrsqr说道:

    Привет, друзья!
    Заказать диплом университета.
    santa4.su/gallery/image/254-kak-podyskat-nadezhnyy-magazin-s-obshirnym-vyborom-diplomov/

  13. RobertCix说道:

    продвижение сайта в топ 3 https://razrabotka-sajtov-pod-klyuch.ru/

  14. games that stood out from traditional casino offerings. Inspired by the concept of high-risk, high-reward, the
    ivermectin where to buy

  15. Dnrtaim说道:

    Здравствуйте!
    Приобрести документ университета можно в нашей компании в Москве.
    diplomyx.com/kupit-diplom-ekaterinbur
    Успехов в учебе!

  16. Dnrtchy说道:

    Привет!
    Заказать документ университета можно у нас в столице.
    diplomasx.com/kupit-diplom-moskva
    Успешной учебы!

  17. Playing the Aviator Game is a thrilling experience. Players place their bets and watch the plane take off, with
    buy ivermectin

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注