| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Для новичков > указатели и массив строк |
| Автор: 12usver12 7.3.2009, 10:16 | ||
собсно хочу использовать массив строк, но без использования векторов и дополнит структур, а именно таким способом, объясните как мне правильно делать проверку пустой указатель или нет, там где в моем коде комментарий, корректно ли так вообще и какими проблемами сулит использование такой конструкции ? |
| Автор: Anikmar 7.3.2009, 10:37 |
Вы объявляете массив указателей на char, Затем (не выделив память ни под один указатель) передаете его в функцию и там пытаетесь добавить в неинициализированный массив. Вот и вылет. Сначала выделите память под мамассив: mass = (char**)malloc(15, sizeof(char*)); (надеюсь ничего не попутал - посмотрите хелп по этой функции) Добавлено через 2 минуты и 14 секунд Это со строками не работает! Используйте строковые функции - такие как strcmp, strncmp Вы какую литературу читали? По идее эти вопросы как правило подробно освещаются. |
| Автор: 12usver12 7.3.2009, 10:55 |
| может я не прав но разве это могло решить проблему, так это локальная переменная при malloc в куче выделяется, но смысл остается тот же if (mass[2]!="") при отладке mass[2] содержит 0xcccccccc мне это нужно как то сравнивать типа там INVALID PTR или еще что-то такое, если такое возможно...то есть логика программы например нужно перечислить названия процессов и занести в этот массив, размер которого берется с запасом плюс с проверкой не выхода за границы массива, при обработке этого массива интересует перебор колва валидных записей в этом массиве |
| Автор: TiKKi 7.3.2009, 11:26 | ||||
Ага.
Еще как вариант инициализации. |
| Автор: Anikmar 7.3.2009, 11:33 |
ага. Я совсем забыл статические массивы... |
| Автор: zim22 7.3.2009, 11:42 |
может вам динамически создавать массив? тогда и не нужно будет угадывать "запас". |
| Автор: 12usver12 7.3.2009, 13:03 | ||
| да теперь вроде ясненько... динамически выделять на моем примере
сулит двойным действием сначала перебрать процессы для подсчета кол-ва процессов, потом динамически выделить память, и потом еще раз пройтись по процессам чтобы добавить их имена в массив... все-таки при работе с объемными данными лучше я так понял выделять в куче память чем в стеке ? |
| Автор: zim22 7.3.2009, 13:16 |
ок. тогда можно создать написать свой класс "Список" И при каждой итерации добавляйте название процесса в новый элемент списка. |
| Автор: 12usver12 7.3.2009, 13:49 |
| писать свой класс думаю смысла нет vector есть уже, мне это для более простых операций... впринципе вопрос решен |