Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Visual C++2008 массивы  (Прочитано 4875 раз)
0 Пользователей и 1 Гость смотрят эту тему.
alextrs
Новенький

ru
Offline Offline

« : 31-01-2011 08:31 » 

Объясните начинающему пожалуйста, почему у меня при нажатии кнопки на форме не пишется в ячейку массива (mas[2][3]='e'; фиг!) т.е. остается прежнее содержимое.Он объявлен в файле Form1.h после #pragma once char mas[5][6] т.е. вроде как глобальный.Может надо по другому как-то?Я пробовал и в stdafx его пихать.
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #1 : 31-01-2011 10:51 » 

alextrs, кто ж тебя знает, отчего у тебя не пишется. Код где?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
alextrs
Новенький

ru
Offline Offline

« Ответ #2 : 31-01-2011 11:08 » 

Код простой -  на форме - buton1 при нажатии :

//кусок Form1

#pragma once
char  mas[3][3];
 
namespace Mypr1 {

   using namespace System;
и т.д.

........

private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
         char f;
         f='g';
         mas[1][2]='6'; // не пишется
         
       

          }

компилир. нормально и mas виден как глоб

Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 31-01-2011 12:50 » 

Это разве C++?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 31-01-2011 15:29 » 

RXL, это C++.NET.

Цитата: alextrs
         mas[1][2]='6'; // не пишется
А как ты установил этот факт, что не пишется?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
alextrs
Новенький

ru
Offline Offline

« Ответ #5 : 01-02-2011 05:16 » 

Смотрю в отладчике по точке останова при нажатии  button1. Причем, если определять массив в обработчике нажатия - void button1_Click(.............,-   то все нормально.
Записан
Dale
Блюзмен
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 01-02-2011 06:15 » 

А зачем в программе
Код: (Text)
#pragma once
?
Записан

Всего лишь неделя кодирования с последующей неделей отладки могут сэкономить целый час, потраченный на планирование программы. - Дж. Коплин.

Ходить по воде и разрабатывать программное обеспечение по спецификациям очень просто, когда и то, и другое заморожено. - Edward V. Berard

Любые проблемы в информатике решаются добавлением еще одного уровня косвенности – кроме, разумеется, проблемы переизбытка уровней косвенности. — Дэвид Уилер.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 01-02-2011 06:23 » 

alextrs, а ты MessageBox выведи сразу после присваивания, или прочитай оттуда значение в локальную переменную и смотри, что прочиталось.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
alextrs
Новенький

ru
Offline Offline

« Ответ #8 : 01-02-2011 08:32 » 

Методом тыка получилось, в свойствах проекта установил - Configuration Propriete->general->Common Language Runtime Support=Common Language Runtime Support (/clr), а было - Pure MSIL.........(/clr:pure) и массив стал работать.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines