Помогите найти ошибку, пожалуйста.

программирование C++ С++

Вот кот на С++:
Казалось бы все просто...

#include <cstdio>
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
const char* szArray[10];
char* helper[10];
for(int i=0;i<10;i++) {
szArray[i]=(const char*)&i;
cout << *szArray[i] << "\n";
}
return 0;
}

Выводит непонятные символы.

Примечание:
Компилится без ошибок

Примечание:
Да, я долбоеб
Ответы:
Зачем вам массив указателей на char?
Что должна была делать прога?
Оно вам вывело символы с кодами от 0 до 9, как вы и просили. Если вам нужны символы от '0' до '9', запустите цикл от 48 до 58.
Ещё там какая-то мешанина из указателей, но вроде в итоге всё работает.
дак вы выводите числа, а нужно их символьное представление szArray[i]=48+(const char*)&i;
и к чему такой огород, почему нельзя так?
for(char i=0;i<10;i++)
   cout << i+48 << "\n";
(const char*)&i;
А что вы этим хотели сказать? Взяли указатель на переменную i, которая лежит на стеке и при выходе из цикла отмирает, а потом удивляетесь мусору в выводе?


14 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.