Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
 Аватар для proger2030
12 / 12 / 5
Регистрация: 15.11.2010
Сообщений: 256

Проблема с указателями!

03.10.2011, 18:29. Показов 645. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создать программу для решения задачи построения слова из некоторого множества букв (игра Scrabble) используя алгоритмы поиска в глубину и в ширину. Длина слова не менее 5 букв.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include "stdafx.h"
#include<iostream>
#include <cstring>
using namespace std;
 
int max;
char str1, str2;
char pastSymbol (char *str, char symbol, int position);
void rec(int k, char str);
char* mid(char* dst, char* src, int start, int len);
char  sout[32];  // буфер для копирований
 
int _tmain(int argc, _TCHAR* argv[])
{
    char *str1con = &str1;
    cout << "Введите набор букв: ";
    cin >> str1;
    cout << "\n";
    cout << "Введите слово(которую надо найти): ";
    cin >> str2;
rec(1, *mid(sout, str1con, 0, 1));
 
    return 0;
}
 
char* mid(char* dst, char* src, int start, int len) {
   // сохраним адрес первого элемента
   char* tmp = dst; 
   
   // присвоим конечный адрес до start+len
   char* end = src + (start + len); 
 
   // итерируем до указанного адреса заполняя выходной буфер
   for(src += start; src <= end; *dst++ = *src++); 
   *dst = '\0';  //для завершения строки-буфера надо указать null terminate(C/C++)
   return tmp;
}
void rec(int k, char str) {
    int i;
    char *strstr = &str;
    char tmp;
    char *tmptmp = &tmp;
    char sym;
    char *str2con = &str2;
    char *str1con = &str1;
    sym = *mid(sout, str2con, k, 0);
    for(i = 0; strlen(strstr); i++) {
            tmp = pastSymbol(strstr, sym, i);
        cout << tmp;
        
        if (strlen(tmptmp) < strlen(str1con)){
                rec(k + 1, tmp);
            }
    }
}
char pastSymbol (char *str, char symbol, int position){
    char *tmp;
    tmp = mid(sout, str, 1, position - 1);
    tmp = tmp + symbol;
    tmp = tmp + *mid(sout, str, position, (strlen(str) - position + 1));
 
     return *tmp;
    }
Запускается но не работает
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2011, 18:29
Ответы с готовыми решениями:

Проблема с указателями
В 64 строке две ошибки связанные с указателем,никак не могу решить. #include &quot;pch.h&quot; #include...

Проблема с указателями.
Доброго времени суток. Такой вопрос: если имеется массив указателей на объекты, как удалить из i-ой...

Проблема с указателями
Есть задание : Объявить массив целых чисел и заполнить его случайными значениями. Размер массива...

1
32 / 32 / 2
Регистрация: 07.08.2011
Сообщений: 89
03.10.2011, 18:44
Описание функции:
void rec(int k, char str);
может всё таки указатель на начало строки надо передавать? так оно передаст один символ, и не факт, что он будет началом строки.
а следовательно
char *strstr = &str;
может вернуть вам указатель на одинокий чар в стеке... а не на вашу строку.

Подумайте в чем смысл строчек:
C++
1
2
char tmp;
char *tmptmp = &tmp;
Ответ:
Вы выделяете в стеке 1 чар, вы пишете в tmptmp указатель на этот один чар, и делаете strlen(tmptmp) от 1 чара, при том, что не факт, что будет вообще закрывающий \0

Мне кажется, вы плохо дружите с указателями, и не понимаете как они работают.

З.Ы. И да,
C++
1
2
3
char str1;
...
char *str1con = &str1;
str1 - не строка, это один символ и
C++
1
cin>>str1;
вам даст ровно 1 символ
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.10.2011, 18:44
Помогаю со студенческими работами здесь

проблема с указателями
struct magazin { int nomer; char nazvanie; char fio; int kol; double dohod; magazin...

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

Помогите с Указателями(проблема)
Привет всем, возник вопрос, почему вот так вот можно написать и копирующий конструктор класса не...

Проблема с указателями и динамической памятью (С++)
Добрый день! Сразу отмечу, что я новичок. В учебнике я начала изучать динамическое выделение...

Hello world! проблема с указателями (упражнения по книге Липпмана)
Привет народ, дело такое: Я углубился в изучение указателей и что-то ну совсееем не запускается...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru