|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
А потом ещё можно почитать про getaddrinfo() и IPv6. И выкинуть всю эту массивную фигню чуть более чем целиком, потому что для задачи она не нужна. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 14:16 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Непонятная ситуация: вот файл header.h Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Создал функцию в отдельном файле: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
При компиляции пишет: error: expected declaration specifiers before ‘printf’ printf("здравствуй, мир\n"); Как буд-то Код: plaintext 1.
не прописан в новом файле. Но он же должен подтягиваться из заголовочного файла строчкой: Код: plaintext 1.
А почему не подтягивается? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 15:30 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Тут какая-то фигня. Bracer не в ту сторону. Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Ты в среде разработки пишешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 15:32 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Тут какая-то фигня. Bracer не в ту сторону. Ты в среде разработки пишешь? А вот оно в чем дело... Поменял на { - все скомпилировалось! Спасибо ) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 15:52 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Ты в среде разработки пишешь? не, я в блокноте пишу. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 15:52 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ mayton Ты в среде разработки пишешь? не, я в блокноте пишу. вижуал студию поставь, писать научишься - продолжишь в блокноте ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 20:17 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Я начинал с Borland C++ под DOS но я не помню была ли там подсветка парных bracers? Кто помнит? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 21:15 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Я начинал с Borland C++ под DOS но я не помню была ли там подсветка парных bracers? Кто помнит? Впрочем, она появилась довольно давно - в lisp-машинах, и кажется еще в 80-х. Но точно, не уверен. Я сам ей пользоваться начал только в начале века, в FAR. Когда colorer набрал популярность. А потом и всяческие IDE подтянулись. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2022, 23:47 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
White Owl Я сам ей пользоваться начал только в начале века, в FAR. Когда colorer набрал популярность. Нынче colorer по умолчанию с Far ставится. Еще есть notepad++, там тоже подсветка синтаксиса. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2022, 08:12 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Доброе утро. Столкнулся с непонятной ситуацией. Заменил тип в структуре с char* на int и память для ячейки структуры перестала выделяться. Вот такая структура и массив из структур: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Было так на i-м шаге в цикле: Код: plaintext 1.
Стало так: Код: plaintext 1.
Ошибка вот такая: warning: cast from pointer to integer of different size Но когда полностью убрал выделение памяти - скомпилировалось и работает. Скажите, это нормально, не выделять память для int в массиве структур? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 11:44 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Под примитивные типы не надо выделять память. Они уже есть в структуре как ее часть. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 12:04 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Под примитивные типы не надо выделять память. Они уже есть в структуре как ее часть. Код: plaintext 1.
Получается под char тоже не надо, только под char* Понял, спасибо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 12:44 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Попробуй нарисуй на бумажке как ты себе представляешь память в виде дампа и где в ней лежит твой массив структур и выделенные строки. Где указатели. Какова их разрядность. Где padding. Это очень быстро освежает мозг и позволяет сразу другим наблюдателям понять где ты ошибаешся и где что не так. Иначе заблуждения пойдут далеко. Я так делал когда был студентом и изучал Borland C++. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 12:48 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Ошибка вот такая: warning: cast from pointer to integer of different size Но когда полностью убрал выделение памяти - скомпилировалось и работает. Скажите, это нормально, не выделять память для int в массиве структур? Ты утечку памяти устроил, компилятор об этом предупредил. Если у тебя указатель (тип со звездочкой*), то это адрес в памяти где лежат данные этого типа (или массив). Без звездочки (не указатель) это уже выделенное место в памяти под переменную данного типа. Т.е. если у тебя тип int, то дополнительно ничего выделять не надо. Указатель это тоже переменная, под нее тоже сразу выделяется память (8 байт в x64) и в эту память пишется адрес на который указывает указатель, т.е. тот адрес который вернет malloc() в твоем коде. PS Про указатели почитай https://metanit.com/cpp/c/5.1.php ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 12:50 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton, Dima T, впитываю информацию, спасибо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2022, 13:33 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Доброе утро. Появилась вот такая проблема: в строку Код: plaintext 1.
попадает значение из функции Код: plaintext 1.
типа: Код: plaintext 1.
А потом я пытаюсь это вставить в sql запрос и выпадает ошибка: что строка содержит символ, не соответствующий utf-8 пытался обрезать строку до одного символа: Код: plaintext 1.
о там получается 1 нормльный символ, а потом еще како-то спецсимвол и такая же ошибка с utf-8 Подскажите пожалуйста как привести строку в соответствие с utf-8 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2022, 10:46 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Доброе утро. Появилась вот такая проблема: в строку Код: plaintext 1.
попадает значение из функции Код: plaintext 1.
типа: Код: plaintext 1.
А потом я пытаюсь это вставить в sql запрос и выпадает ошибка: что строка содержит символ, не соответствующий utf-8 пытался обрезать строку до одного символа: Код: plaintext 1.
о там получается 1 нормльный символ, а потом еще како-то спецсимвол и такая же ошибка с utf-8 Подскажите пожалуйста как привести строку в соответствие с utf-8 ? Думаю посимвольно строку перебрать и оставить только те символы, которые к utf-8 относятся. Но как понять относится символ к utf-8 или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:22 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Покажи код. Декодировать вручную utf-8 не нужно. Что-то выше по коду было не так. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 11:56 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Покажи код. Декодировать вручную utf-8 не нужно. Что-то выше по коду было не так. Тут дело такое. Весь код довольно большой и слабочитаемый, тем более там специфическая библиотека. Особо нет смысла его приводить. Код устроен так: 1) в char* переменную считывается сообщение об ошибке из функции libpq - PQerrorMessage(). 2) это сообщение содержит руские буквы и спецсимволы. 3) формирую запрос на INSERT в БД. И в него через strcat() вставляю это сообщение. 4) ошибка об utf-8 именно от БД postgresql , её не Си выдает. Получается, если сообщение об ошибке на английском - INSERT в БД проходит без проблем. Если на русском, то он не проходит и программа работает дальше, просто нет записи в БД. Надеюсь передал суть проблемы ) Задача: обработать эту переменную со спецсимволами, убрав их. Оставить только символы, которые есть в utf-8 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 12:09 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Попробуй в строке коннекта явно указать кодировку Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 12:42 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Задача: обработать эту переменную со спецсимволами, убрав их. Оставить только символы, которые есть в utf-8 Все символы с кодами от 32 до 127 одинаковы в кодировке ANSI и UTF-8, остальные убрать можно так: Код: plaintext 1. 2. 3.
но так ты все русские буквы на вопросики заменишь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 12:48 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ Задача: обработать эту переменную со спецсимволами, убрав их. Оставить только символы, которые есть в utf-8 Все символы с кодами от 32 до 127 одинаковы в кодировке ANSI и UTF-8, остальные убрать можно так: Код: plaintext 1. 2. 3.
но так ты все русские буквы на вопросики заменишь. Вопросики - не страшно. Это похоже то что нужно. Спасибо :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 13:56 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
mayton Попробуй в строке коннекта явно указать кодировку Код: plaintext 1.
Спасибо, проверю отпишусь. Сейчас просто не за компом. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 13:57 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Dima T Уткъ Задача: обработать эту переменную со спецсимволами, убрав их. Оставить только символы, которые есть в utf-8 Все символы с кодами от 32 до 127 одинаковы в кодировке ANSI и UTF-8, остальные убрать можно так: Код: plaintext 1. 2. 3.
но так ты все русские буквы на вопросики заменишь. Ура, сработало! Правда немного изменил: Код: plaintext 1. 2. 3. 4. 5. 6.
Большое спасибо! Чуть позднее еще с кодировкой попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 14:57 |
|
Си. Освободить память 2-мерного сторкового массива
|
|||
---|---|---|---|
#18+
Уткъ Правда немного изменил: Код: plaintext 1. 2. 3. 4. 5. 6.
Компилятор на такое, кстати, ругаться должен. Ты эту ругань проигнорировал? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2022, 15:00 |
|
|
start [/forum/topic.php?fid=57&msg=40134285&tid=2017122]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
22ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 381ms |
0 / 0 |