Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Для новичков > Удаление "мусора" |
Автор: freeKODE 15.7.2009, 15:28 | ||
Нужно удалить мусор из массива ed, он начинается с 48 ячейки походу. Да и вобще откуда он там взялся? В туксе мусор был на одну ячейку и разный, а в венде один и тот же в две ячейки.
Модератор: Учимся пользоваться кнопочкой "Код". И не надо текст выкладывать на внешние сайты. |
Автор: DmitrySDolzhenko 15.7.2009, 15:58 | ||||||
замени на
или добавь цикл
|
Автор: bsa 15.7.2009, 15:59 | ||||
freeKODE, ну начнем с того, что код надо бы переформатировать. потому что "это" читать невозможно.
Итак, в чем ошибки: 1. char brit[1] - выделяет массив под 1 элемент (элементы считаются с 0, т.е. доступ к элементу с индексом 1 - недопустим) 2. доступ ко второму элементу массива brit, когда он состоит только из одного 3. попытка преобразовать строку, которая находится по адресу brsyc в число. Но у тебя там не строка! А один символ. Строка - это массив символов, который оканчивается символом '\0'. Есть правила форматирования кода: 1. Одна операция - одна строка. (т.е. не стоит писать char lnk[MAXPATH][MAXPROGRAMM],brit[1],allone[1],ed[MAXPATH+15];) Определи каждую переменную на отдельной строке. И у каждой отдельно укажи тип (т.е. не через запятую). 2. Блок внутри операторных скобок должен быть с отступом относительно родительского:
3. Закрывающая фигурная скобка всегда идет на отдельной строке и на уровне оператора ее породившего (см. пример) 4. Открывающая фигурная скобка идет или сразу за оператором или на следующей за ним строке (см. пример if и for), но на его уровне (см. пример main). Порядок размещения фигурных скобок должен быть одинаковым для всего проекта, исключение, стиль linux - у меня в примере. 5. Названия переменных должны отражать их назначение (исключение, i,j,k и т.п. используемые как счетчики циклов). 6. Объявление переменной должно быть как можно ближе к первому ее использованию (если позволяет компилятор - старые компиляторы Си это не позволяли). 7. Префиксная форма операторов ++ и -- предпочтительней там, где не требуются функциональные особенности постфиксных. 8. Ставь пробелы вокруг операторов: for(int i = 0; i < 10; ++i) выглядит и понимается легче, чем for(int i=0;i<10;++i) |
Автор: freeKODE 15.7.2009, 20:37 |
bsa, исправлюсь DmitrySDolzhenko, увы добавление цикла, не решило проблему с мусором мусор появляеться (кажись) после strcat(); |
Автор: bsa 15.7.2009, 22:20 | ||
Ну и где исправленный код? Ты думаешь кто-то пытается найти ошибки в том коде, что приведен выше? Сомневаюсь. Там их очень много. Отформатируй код, исправь ошибки, на которые указал я, которые указал DmitrySDolzhenko. Может уже и остальные сам найдешь. |