Запитання з тегом «c»

C - мова програмування загального призначення, що використовується для системного програмування (ОС та вбудованих), бібліотек, ігор та крос-платформ. Цей тег слід використовувати із загальними питаннями, що стосуються мови C, визначеної стандартом ISO 9899 (остання версія, 9899: 2018, якщо інше не зазначено - також запити, пов’язані з версією тегів c89, c99, c11 тощо). C відрізняється від C ++, і він не повинен поєднуватися з тегом C ++ без раціональної причини.

15
Як strtok () розділяє рядок на лексеми на C?
Будь ласка, поясніть мені strtok()функціонування функції. Посібник говорить, що він розбиває рядок на лексеми. Я не можу зрозуміти з посібника, що він насправді робить. Я додав годинник strі *pchперевіряв його роботу, коли відбувся перший цикл, але вміст strбув лише "цим". Як друкувались на екрані вихідні дані? /* strtok example */ …
114 c  string  split  token  strtok 


4
Зніміть пробіл printf з пробілами
Як я можу прокладати рядок з пробілами зліва при використанні printf? Наприклад, я хочу надрукувати "Привіт" з 40 пробілами, що передують йому. Також рядок, який я хочу надрукувати, складається з декількох рядків. Чи потрібно друкувати кожен рядок окремо? РЕДАКТУВАННЯ: Просто, щоб було зрозуміло, я хочу перед кожним рядком надрукувати рівно …
114 c  formatting  printf 

13
Які можуть бути причини, коли підключення відхилено помилки?
Я намагаюся написати серверну програму на C, використовуючи інший клієнт, я отримую цю помилку, коли намагаюся, наприклад, підключитися через порт 2080. connection refused Які можуть бути причини цієї помилки?

5
Пошкоджена рамка стека GDB - Як налагодити?
У мене є такий слід стека. Чи можна зробити з цього щось корисне для налагодження? Program received signal SIGSEGV, Segmentation fault. 0x00000002 in ?? () (gdb) bt #0 0x00000002 in ?? () #1 0x00000001 in ?? () #2 0xbffff284 in ?? () Backtrace stopped: previous frame inner to this frame …
113 c  recursion  gdb 

7
Заголовок C99 stdint.h та MS Visual Studio
На мій подив, я щойно виявив, що C99 stdint.h відсутній у MS Visual Studio 2003 вгору. Я впевнений, що вони мають свої причини, але хтось знає, де я можу завантажити копію? Без цього заголовка у мене немає визначень для корисних типів, таких як uint32_t тощо.
113 c++  c  visual-studio  c99 

9
Є 'int main;' дійсна програма C / C ++?
Я прошу, тому що, здається, мій компілятор так вважає, хоча я цього і не роблю. echo 'int main;' | cc -x c - -Wall echo 'int main;' | c++ -x c++ - -Wall Clang не видає цього попередження або помилки, а gcc видає лише кротке попередження:, 'main' is usually a …
113 c++  c  function  main  entry-point 

7
Яка різниця між vmalloc та kmalloc?
Я гуляв навколо і виявив, що більшість людей виступає за використання kmalloc, оскільки ви гарантовано отримуєте суміжні фізичні блоки пам'яті. Однак це, здається, kmallocможе не вдатися, якщо не вдасться знайти суміжний фізичний блок, який ви хочете. Які переваги мати суміжний блок пам'яті? Зокрема, навіщо мені потрібно мати системний фізичний блок …


10
Чи вільний (ptr), де ptr - NULL пошкоджена пам'ять?
Теоретично я можу це сказати free(ptr); free(ptr); це пошкодження пам’яті, оскільки ми звільняємо вже звільнену пам’ять. Але що робити, якщо free(ptr); ptr=NULL; free(ptr); Оскільки ОС буде вести себе невизначено, я не можу отримати фактичний теоретичний аналіз цього щодо того, що відбувається. Що б я не робив, це пошкодження пам’яті чи …

9
Чому викидаєте невикористані значення повернення до недійсних?
int fn(); void whatever() { (void) fn(); } Чи є якась причина, щоб викинути невикористане повернене значення недійсним, чи я маю рацію, думаючи, що це повна трата часу? Слідувати: Добре, що здається досить вичерпним. Я вважаю, що це краще, ніж коментувати невикористане значення повернення, оскільки самодокументування коду краще, ніж коментарі. …
112 c++  c  void 

3
Чому цей код є стандартним для 64-розрядної архітектури, але добре працює у 32-розрядному?
Я натрапив на таку загадку C: Питання: Чому на IA-64 наведена нижче програма, але вона працює чудово на IA-32? int main() { int* p; p = (int*)malloc(sizeof(int)); *p = 10; return 0; } Я знаю, що розмір int64-бітної машини може бути не такий, як розмір вказівника ( intможе бути 32 …

19
#ifdef vs #if - що краще / безпечніше як метод увімкнення / вимкнення компіляції окремих розділів коду?
Це може бути питанням стилю, але в нашій команді розробників є дещо, і я поцікавився, чи хтось ще мав ідеї з цього приводу ... В основному, у нас є кілька виправлень налагодження друку, які ми вимикаємо під час нормальної розробки. Особисто я вважаю за краще робити наступне: //---- SomeSourceFile.cpp ---- …

5
Де визначено PATH_MAX у Linux?
Який файл заголовка я повинен викликати, #includeщоб мати можливість використовувати PATH_MAX як int для розміру рядка? Я хочу мати змогу заявити: char *current_path[PATH_MAX]; Але коли я це роблю, мій компілятор (Clang / LLVM в Linux) видає таку помилку: recursive_find6.c:29:20: error: use of undeclared identifier 'PATH_MAX' char *current_path[PATH_MAX]; ^ Я спробував …
112 c  linux  gcc  include  clang 


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.