Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
1

помогите проблема указатели и windows x64.

11.03.2012, 16:49. Просмотров 1683. Ответов 29
Метки нет (Все метки)

дебагер ошибок не пишет компилируется)...на другом компьютере .ехе запускается где ХРх86...у меня нет вот пишет такую ошибку ...не могу понять что это...запустил под админом...
0
Миниатюры
помогите проблема указатели и windows x64.  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2012, 16:49
Ответы с готовыми решениями:

Где взять и как подцепить к Code Blocks бесплатный компилятор x64 стандарта C++11 для Windows 7 x64?
Где взять и как подцепить к Code Blocks бесплатный компилятор x64 стандарта...

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

Помогите переделать работу с массивом через указатели
помогите оформить через указатели...понимаю,что элементарно....но я трамвай ...

CLion x64 [Windows]
Как CLion заставить компилировать под x64 ?

Указатели и массивы. Внедрение функции в прогу. C++. Пожалуйста, помогите.
Условие задачи: /* Calculate the length of a string */ #include...

29
Duha666
51 / 51 / 19
Регистрация: 10.03.2012
Сообщений: 138
11.03.2012, 16:54 2
Ну дебаггер же сообщает ошибку. Непроинициализирована p_p. Она у вас неизвестно чему равна, присвойте ей адекватное значение.
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 16:58  [ТС] 3
я пробовал ни чего не меняется суть в том что на машине№1 х32 работает на машине№2 где х64 нет.
...код я специально сократил чтоб суть было видно...
0
Duha666
51 / 51 / 19
Регистрация: 10.03.2012
Сообщений: 138
11.03.2012, 17:01 4
Вы отдельно компилируете исходники на этих машинах?
1
panicwassano
594 / 562 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
11.03.2012, 17:01 5
maxht вам компилятор пишет понятным языком, что преждем чем использовать указатель его нужно проинициализировать! присвойте вашему указателю адрес структуры в памяти!
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 17:10  [ТС] 6
нет... компилирую на х64 все норм...создал .ехе на х32ХР работает 1гб памяти...на х64 Вин7 16Гб памяти не работает вот что пишет...zip1(2,3) CXX0030 ошибка.не возможно вычислить выражение...
0
Duha666
51 / 51 / 19
Регистрация: 10.03.2012
Сообщений: 138
11.03.2012, 17:15 7
Варианты:
1. Вы выполняете один и тот же код на разных архитектурах
2. Вы таки не присваиваете адекватное значение.
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 17:25  [ТС] 8
panicwassano pc *p_p; это что не инициализация? с типом ини. всегда так работало пока не сел на новую машину. и p_p адрес выделяется я проверял 4кбайт(на х86) на х64 выделение не происходит...

Добавлено через 3 минуты
Duha666- pc *p_p; это что тогда? ...дело в работе с памятью как я полагаю но понятия не имею как проблему решить(

я думал это какаето известная проблема...
проверти код у себя кому интересно)))
0
ValeryS
Модератор
7264 / 5518 / 692
Регистрация: 14.02.2011
Сообщений: 18,691
11.03.2012, 17:32 9
Цитата Сообщение от maxht Посмотреть сообщение
pc *p_p; это что не инициализация?
нет это объявления указателя
C++
1
pc *p_p=new pc;
Вот это инициализация

Цитата Сообщение от maxht Посмотреть сообщение
и p_p адрес выделяется
серьезно???
Цитата Сообщение от maxht Посмотреть сообщение
p_p адрес выделяется я проверял 4кбайт
как проверял???
т.е три инта это 4к байта???

Добавлено через 49 секунд
Цитата Сообщение от maxht Посмотреть сообщение
я думал это какаето известная проблема...
ну так тебе и написали не выделил память
1
Duha666
51 / 51 / 19
Регистрация: 10.03.2012
Сообщений: 138
11.03.2012, 17:35 10
pc * p_p - объявление p_p, как указателя.
p_p = &jd - один из вариантов инициализации
Указатель в x32 - 4 байта, указатель в x64 - 8 байт.
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 17:49  [ТС] 11
посмотрел адрес куда записан р_р добавил 1 и получил на 4кбайт больше и sizeof(р_р) тож 4кбайт
ооо заработало спасибо ))) интересно для указателей на типы переменных инициализацию никогда не делал и никто не советовал и работает... да и на структуры первый раз такой глюк... ведь при объявлении выделяется память?..
0
Kastaneda
11.03.2012, 17:50
  #12

Не по теме:

Цитата Сообщение от Duha666 Посмотреть сообщение
Указатель в x32 - 4 байта, указатель в x64 - 8 байт
Немного не так, в х32 - 32 бита, в х64 - 64 бита. Байт не всегда 8 бит.

1
fasked
Эксперт С++
4982 / 2561 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
11.03.2012, 17:51 13
Цитата Сообщение от maxht Посмотреть сообщение
ведь при объявлении выделяется память?..
Для хранения самого указателя да - на стеке. Для объекте, на который указатель ссылается, - нет.
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 18:05  [ТС] 14
посмотрел адрес куда записан р_р добавил 1 и получил на 4кбайт больше и sizeof(р_р) тож 4кбайт

ооо заработало спасибо pc *p_p=new pc; ))) интересно для указателей на типы переменных инициализацию никогда не делал и никто не советовал и работает... да и на структуры первый раз такой глюк... ведь при объявлении выделяется память?..

p_p = &jd ага вот так я сразу делал и нет...не работает

Добавлено через 13 минут
да ток теперь инициализировать придется многое и мусора будет хоть и не много но как то не правильно...delete*ов уж много выходит...знать бы причину проблемы в корне...я же говорю это вот первый раз такое на новой машине...


fasked-- дак привильно обект и так уже гдет хранится он имеет значение и адрес
0
fasked
Эксперт С++
4982 / 2561 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
11.03.2012, 18:07 15
Цитата Сообщение от maxht Посмотреть сообщение
fasked-- дак привильно обект и так уже гдет хранится он имеет значение и адрес
Только вот указатель на него не указывает
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 18:09  [ТС] 16
Цитата Сообщение от Kastaneda Посмотреть сообщение

Не по теме:


Немного не так, в х32 - 32 бита, в х64 - 64 бита. Байт не всегда 8 бит.

у меня на int 4кбайта...
0
Duha666
51 / 51 / 19
Регистрация: 10.03.2012
Сообщений: 138
11.03.2012, 18:11 17
Цитата Сообщение от maxht Посмотреть сообщение
у меня на int 4кбайта...
Ошибаетесь. В любой x64 системе, указатель - 64 бита, в x32 - 32 бита.
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 18:17  [ТС] 18
sizeof(int);==4
0
Duha666
51 / 51 / 19
Регистрация: 10.03.2012
Сообщений: 138
11.03.2012, 18:21 19
Во-первых 4 байта, а не кбайта. Во вторых, это размер типа int, а не указателя. И указатель вообще не зависит от типа.
1
maxht
0 / 0 / 0
Регистрация: 11.03.2012
Сообщений: 14
11.03.2012, 18:31  [ТС] 20
не я был не прав не работает!!!!!...после /pc *p_p=new pc;/ память под /p_p/ выделялась а вот при вызове/p_p.zip1/ ошибка
0
11.03.2012, 18:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2012, 18:31

Компиляция под Windows x64
Здравствуйте есть 2 компьютера на 1 стоит х32 на котором компилируется...

Определение характеристик компьютера (windows 8 x64)
Здравствуйте, нужно узнать определенные характеристики компьютера(программно):...

Добавление компиляторов и отладчиков с++ для windows 8 x64
Здравствуйте господа программисты, у меня такой вопрос: Решил изучать с++...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru