2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 с++ Builder вопрос по массиву структур
Сообщение04.06.2013, 16:31 
вот создал массив структур
Код:
struct
{
     char name[10];
     float str1[10];
     float str2[10];
     float str3[10];
} Shop;

вот как обращаться к конкретным ячейкам не пойму
писал так
Код:
for(int i=1; i<11; i++)
{
sscanf(StringGrid1->Cells[2][i].c_str(), "%f", &str1[i]);  // присвоение значения ячеек к массиву
sscanf(StringGrid1->Cells[3][i].c_str(), "%f", &str2[i]);
}

ошибку выдаёт т.к str1 ему неизвестен и с другим также

 
 
 
 Re: с++ Builder вопрос по массиву структур
Сообщение04.06.2013, 16:54 
BAHOO в сообщении #732479 писал(а):
вот создал массив структур
Код:
struct
{
     char name[10];
     float str1[10];
     float str2[10];
     float str3[10];
} Shop;
Это не массив структур, а структура с массивами.

BAHOO в сообщении #732479 писал(а):
вот как обращаться к конкретным ячейкам не пойму
писал так
Код:
for(int i=1; i<11; i++)
{
sscanf(StringGrid1->Cells[2][i].c_str(), "%f", &str1[i]);  // присвоение значения ячеек к массиву
sscanf(StringGrid1->Cells[3][i].c_str(), "%f", &str2[i]);
}

ошибку выдаёт т.к str1 ему неизвестен и с другим также
Такой код работал бы в методе структуры Shop, где были бы автоматически определены члены-данные str1 и др.
А так - заведите переменную типа Shop и обращайтесь к её полям:
Используется синтаксис C++
Shop shop;
shop.str1[0] = 1;
 

 
 
 
 Re: с++ Builder вопрос по массиву структур
Сообщение04.06.2013, 17:32 
спс, разобрался

 
 
 
 Re: с++ Builder вопрос по массиву структур
Сообщение04.06.2013, 18:33 
Хорошо, хотя я в ответе ошибок наделал. :-)
Кстати, в C/C++ у массивов индексы начинаются с нуля. В вашем случае с 0 до 9.

 
 
 
 Re: с++ Builder вопрос по массиву структур
Сообщение05.06.2013, 10:23 
venco в сообщении #732532 писал(а):
Хорошо, хотя я в ответе ошибок наделал. :-)
Кстати, в C/C++ у массивов индексы начинаются с нуля. В вашем случае с 0 до 9.


это я знаю) мне первые значения не нужны)

 
 
 
 Re: с++ Builder вопрос по массиву структур
Сообщение05.06.2013, 14:02 
Проблема не в первых элеменетах, а в последних. Ваш цикл пишет по индексу 10, а его в массивах уже нет. Т.е. пишется в память за пределами массивов, и портятся соседние переменные.

 
 
 
 Re: с++ Builder вопрос по массиву структур
Сообщение07.06.2013, 08:23 
venco в сообщении #732965 писал(а):
Проблема не в первых элеменетах, а в последних. Ваш цикл пишет по индексу 10, а его в массивах уже нет. Т.е. пишется в память за пределами массивов, и портятся соседние переменные.

о) кстати, даже по началу и не заметил) но в этом уже разобрался, курсач сдал. Я там прост немног переделал чтоб с нуля, и просто еденицу прибавил. У меня прост в цикле этот момент был, где также с второго элемента, вот и понапутал)

 
 
 [ Сообщений: 7 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group