У кого-нибудь есть проблемы с вводом строк в Xcode 3.2? - PullRequest
2 голосов
/ 17 сентября 2009

По какой-то причине excode выдает эту ошибку, когда я пытаюсь войти в строку.

test (5640) malloc: * ошибка для объекта 0x1000041c0: освобожденный указатель не выделен * установить точку останова в malloc_error_break для отладки Программа получила сигнал: «SIGABRT». sharedlibrary apply-load-rules all

Вот код, который произвел это:

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string hello;

    cout << "Enter a string";
    cin >> hello;

    return 0;

}

Так у кого-нибудь есть решение?

1 Ответ

1 голос
/ 18 сентября 2009

По данным этого форума: http://discussions.apple.com/message.jspa?messageID=10236050#10236050

Технически это предупреждающее сообщение, а не ошибка. Это ошибка в библиотеке GCC C ++. Напомни мне еще раз, почему я больше не пишу код на C ++. Вы могли бы подумать, что в 2009 году они исправят глупости, подобные этой.

Этого можно избежать, убедившись, что переменная hello инициализирована для чего-то, с чего можно начинать.

Или вы можете отключить педантичные предупреждения. Выберите цель отладки и дважды щелкните ее или Command-i. Прокрутите вниз до «GCC 4.2 - Предварительная обработка». Выберите «Макросы препроцессора» и удалите его. Вы больше не получите предупреждение. Вы все еще будете освобождать нераспределенную память, но вы можете пожаловаться в GCC по этому поводу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...