Массив указателей на строку

C (programming language)

Указатели сами по себе представляют значения, которые можно хранить в массивах. То есть в итоге получится массив указателей.


#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int main(void)
{
	/* Статический массив указателей на строку */
	const short SIZE = 5;
	const char *const_str = "Hello world!";
	char *str_static[SIZE];

	for (size_t i = 0; i < SIZE; i++)
	{
		/* Выделяем память для сторки и присваиваем значение в указатель */
		str_static[i] = (char*)calloc(32, sizeof(char));
		strcpy_s(str_static[i], strlen(const_str) + 1, const_str);
	}

	for (size_t i = 0; i < SIZE; i++)
	{
		printf("%s\n", str_static[i]);
		/* Очищаем выделенную для строки память */
		free(str_static[i]);
	}
	printf("------------\n");

	/* Динамический массив указателей на строку */
	char **str_dynamic = nullptr;
	/* Выделяем память для массива указателей */
	str_dynamic = (char**)calloc(SIZE, sizeof(char*));

	for (size_t i = 0; i < SIZE; i++)
	{
		/* Выделяем память для сторки и присваиваем значение в указатель */
		str_dynamic[i] = (char*)calloc(32, sizeof(char));
		strcpy_s(str_dynamic[i], strlen(const_str) + 1, const_str);
	}

	for (size_t i = 0; i < SIZE; i++)
	{
		printf("%s\n", str_dynamic[i]);
		/* Очищаем выделенную для строки память */
		free(str_dynamic[i]);
	}
	/* Очищаем массив указателей */
	free(str_dynamic);

	return 0;
}

1С:Предприятие

Самый большой опыт работы был накоплен при внедрении программных продуктов от компании "1С".
Подробнее...

PALO

Этот продукт мы включили специально для тех заказчиков, которые решили организовать финансовый учет, на своем предприятии, либо ведут его в таблицах MS Excel.
Подробнее...

Профессионалам

Информационные материалы содержащие справочную информацию или полезные сведения для повышения квалификации.
Подробнее...