#include <string.h>
# define blocksize 5; // Задаем константой размер блока
char **strarray = NULL; // Глобальный указатель на массив строк
int count = -1; // Индекс последнего элемента
int size = 0; // Размер массива
void Resize() //Процедура расширения массива
{
char **newarray = NULL;
int newsize = size+blocksize;
newarray = new char*[newsize]; // Выделяем память
if (size!=0)
{
memcpy (newarray,strarray,size*4); // Копируем содержимое старого в новый
delete [] strarray; // Освобождаем память
}
strarray = newarray; // Меняем указатель
size = newsize; // Новый размер массива
}
void AddString (char *string) // Функция добавления строки к массиву
{
int slen = 0;
count++;
if (size==count) Resize(); // Если указатели массива закончились, то увеличиваем размер
slen = strlen(string); // Вычисляем длину строки
strarray[count] = new char[slen+1]; // Выделяем память под строку
strcpy(strarray[count],string); // Копируем строку
}
void Free()
{
for (int i=0; i<=count; i++)
delete [] strarray[i];
delete [] strarray;
count = -1;
size =0;
strarray = NULL;
}
int _tmain(int argc, _TCHAR* argv[])
{
AddString("Один");
AddString("Два");
AddString("Три");
AddString("Четыре");
AddString("Пять");
AddString("Шесть");
AddString("Семь");
char *t = strarray[3];
t = strarray[6];
t = strarray[2];
Free();
return 0;
}
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.