void mas(struct kartoteka*,struct kartoteka**);
struct kartoteka{
char tt[60];
char omg[10];
int r,y;
};
void main()
{
stud*block,**lib;
block=(kartoteka*)calloc(1,sizeof(kartoteka));
lib=(kartoteka**)calloc(kol,sizeof(kartoteka));
fflush(stdin);
Структуры
Код:
Как заполнить данный массив структур?Пробывал заполнять по принципу "обычного" массива( насколько я понимаю это так сказать массив в массиве) однако ничего не вышло.Прошу помочь.Или же отослать на ссылку с материалом описывающим заполнение массивов структур.Я все таки думаю что эта обычная "стандартная" процедура, которая скорее всего описана в любом нормальном учебнике по С.
соответственно теперь, после определения массива указателей, тебе надо пройтись по всем элементам и положить туда либо указатель на первый элемент сложенного массива, либо "ничего" =)
хы...
ну, например вот ссылка... про массивы указателей - http://ermak.cs.nstu.ru/cprog/Book2001/305-01.htm
Сайт не пашет почему то:/ Утром работал, однако тогда времени не было(, кто может есче подсказать что нить из этой темы.Очень надо севодня в этом разобраться.
*усилинно исчет в яндыксе*
Код:
struct kartoteka{
char tt[60];
char omg[10];
int r,y;
};
//Задаём двух мерный массив. Тоже самое, что если бы написали
//kartoteka pptest[10][100];
kartoteka** pptest;
pptest = (kartoteka**)calloc(10,sizeof(kartoteka*));
for(int i=0; i<10; i++){
pptest = (kartoteka*)calloc(100,sizeof(kartoteka));
}
//А тут его заполняем
for(int i=0; i<10; i++){
for(int j=0; j<100; j++){
pptest[j].r = 0;
pptest[j].y = 0;
strcpy(pptest[j].tt,"Test");
}
}
char tt[60];
char omg[10];
int r,y;
};
//Задаём двух мерный массив. Тоже самое, что если бы написали
//kartoteka pptest[10][100];
kartoteka** pptest;
pptest = (kartoteka**)calloc(10,sizeof(kartoteka*));
for(int i=0; i<10; i++){
pptest = (kartoteka*)calloc(100,sizeof(kartoteka));
}
//А тут его заполняем
for(int i=0; i<10; i++){
for(int j=0; j<100; j++){
pptest[j].r = 0;
pptest[j].y = 0;
strcpy(pptest[j].tt,"Test");
}
}
Цитата:
//Задаём двух мерный массив. Тоже самое, что если бы написали
//kartoteka pptest[10][100];
Хм...Или ты или я что то не правильно поняли)
Смысл примерно такой(я просто пытаюсь узнать говорим ли мы об одном и том же):
Вносяться допустим данные
omg-фамилия
tt-имя
r-возраст
y-вес
Которые так сказать должны вноситься в одномерный массив(block).
При вводе массива block он становиться первым эоементом массива lib, после опять заполняется новый block и он становиться 2-м элементом lib и т.д. Или же всетаки не понял я?
Ну тогда это можно сделать так:
Код:
struct kartoteka{
char tt[60];
char omg[10];
int r,y;
};
kartoteka** lib;
lib = (kartoteka**)calloc(kol,sizeof(kartoteka*));
kartoteka* block;
block = (kartoteka*)calloc(1,sizeof(kartoteka));
block->r=0; block->y=0; //К примеру
lib[0]=block;
block = (kartoteka*)calloc(1,sizeof(kartoteka));
block->r=1; block->y=1; //К примеру
lib[1]=block;
char tt[60];
char omg[10];
int r,y;
};
kartoteka** lib;
lib = (kartoteka**)calloc(kol,sizeof(kartoteka*));
kartoteka* block;
block = (kartoteka*)calloc(1,sizeof(kartoteka));
block->r=0; block->y=0; //К примеру
lib[0]=block;
block = (kartoteka*)calloc(1,sizeof(kartoteka));
block->r=1; block->y=1; //К примеру
lib[1]=block;
Код:
struct kartoteka
{
char tt[60];
char omg[10];
int r,y;
};
kartoteka** lib;
lib = new kartoteka*[kol];
int i, j;
for (i = 0; i < kol; i++)
{
kartoteka* lib_lower = new kartoteka[lower_kol];
lib = lib_lower;
}
// далее чтобы заполнить все элементы
for (i = 0; i < kol; i++)
{
for (j = 0; k < kol; j++)
{
kartoteka elem;
elem.tt = "name";
// и так далее заполняем все данные элемента
lib[j] = elem;
}
}
{
char tt[60];
char omg[10];
int r,y;
};
kartoteka** lib;
lib = new kartoteka*[kol];
int i, j;
for (i = 0; i < kol; i++)
{
kartoteka* lib_lower = new kartoteka[lower_kol];
lib = lib_lower;
}
// далее чтобы заполнить все элементы
for (i = 0; i < kol; i++)
{
for (j = 0; k < kol; j++)
{
kartoteka elem;
elem.tt = "name";
// и так далее заполняем все данные элемента
lib[j] = elem;
}
}
как бы всё.