[c/c++]柔性数组

/ 6,771评论 / 36876阅读 / 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. ThomasAlorp说道:

    Магазин спортивной фармакологии – OxyShop. Это всемирно известный надёжный поставщик качественных препаратов для спортсменов гормон роста стероид

  2. ThomasAlorp说道:

    Магазин спортивной фармакологии – OxyShop. Это всемирно известный надёжный поставщик качественных препаратов для спортсменов стероиды и гормон роста

  3. JustinTut说道:

    online shopping pharmacy india https://indiaph24.store/# indian pharmacy
    indian pharmacy

  4. RobertMum说道:

    Сайт, где можно заказать практичные раковина roca по выгодным ценам.

  5. StevenSen说道:

    india pharmacy: buy medicines from India – top 10 online pharmacy in india

  6. Michaelsew说道:

    https://mexicoph24.life/# buying from online mexican pharmacy

  7. JustinTut说道:

    india online pharmacy http://indiaph24.store/# Online medicine order
    indian pharmacy

  8. Pedropaite说道:

    pharmacies in mexico that ship to usa: Online Pharmacies in Mexico – buying from online mexican pharmacy

  9. RickyAlage说道:

    canadian pharmacy online ship to usa canada drugs online reviews canadian pharmacy meds review

  10. Pedropaite说道:

    best online pharmacies in mexico: Mexican Pharmacy Online – mexico drug stores pharmacies

  11. RickyAlage说道:

    best rated canadian pharmacy canadian pharmacies my canadian pharmacy reviews

  12. RickyAlage说道:

    п»їlegitimate online pharmacies india Generic Medicine India to USA п»їlegitimate online pharmacies india

  13. Percytal说道:

    О, этот сайт! Бесконечная череда страниц, наполненных буквами, словами и фразами, вроде как объединенных общей темой отзывы автошкола

发表回复

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