Форум программистов, компьютерный форум CyberForum.ru

Указатели на строки - C++

Восстановить пароль Регистрация
 
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
09.08.2012, 17:56     Указатели на строки #1
Есть следующий код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Strings // класс с указателями на строки (размер которого равен 8) 
{
public:
    char* str1;
    char* str2;
   Strings()
   {
        memset(this,0,sizeof *this);
  };
 
};
Strings MS; // объект класса
char strings[4][20]; // сами строки
strcpy_s(strings[0],"123456789");
strcpy_s(strings[1],"abcdetfff");
MS.str1=strings[0]; // присваиваем указатели
MS.str2=strings[1];
// теперь нужно вывести строки на экран по их указателям
for (int i=0;i<2;i++){
   char* ps=*(&MS.str1+i*4); // адрес строки, добавляя смещение
  printf("addr1: %lld\n",(long long)ps);
   printf("address of string : %lld, address of pointer: %lld, %d : %s\n",(long long)strings[i],(long long)&MS.adx1+4*i,i,ps);
    }
Вывод получается такой:
первая итерация:
Код
addr1: 1637736
address of string : 1637736, address of pointer : 1637432, 0: 123456789
вторая:
Код
addr1: 48
Дальше понятное дело, происходит необработанное исключение, т.к. программа пытается вывести строку по этому адресу и отладчик отправяет меня в файл output.c
Никак не могу понять, в чем может быть дело. Может кто подскажет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2012, 17:56     Указатели на строки
Посмотрите здесь:

Строки и указатели C++
C++ Строки и указатели........
Строки и указатели с++ C++
Указатели и указатели на указатели, а также типы данных C++
C++ Указатели и строки
C++ Указатели и строки
Указатели.Строки и указатели C++
Строки и указатели в C++ C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
09.08.2012, 18:07     Указатели на строки #2
А ты чего хотел? У тебя строки нулевая и первая, а ты обращаешься к нулевой и четвёртой.
cossack5
54 / 48 / 1
Регистрация: 02.08.2012
Сообщений: 127
09.08.2012, 18:23  [ТС]     Указатели на строки #3
Как-то незаметил, что у меня под носом. Спасибо, что указали. Можно закрыть.
Yandex
Объявления
09.08.2012, 18:23     Указатели на строки
Ответ Создать тему
Опции темы

Текущее время: 23:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru