Vladislav
а с помощью malloc(), я могу выделить память в куче для двумерного массива?
Борисов
а с помощью malloc(), я могу выделить память в куче для двумерного массива?
malloc(N) выделяет просто область памяти размером N байт. Он ничего не знает о том, что в этой будет лежать: строка, массив, двумерный массив. "Дай мне 100 байт! Держи 100 байт!"
Борисов
А зачем вообще в наше время на С писать ?
В наше время люди и на Cobol пишут ) не то что на Си )) https://habr.com/ru/post/532554/
Vladislav
21ё
Какой-то Ⱈ из интернета
А на чём?
Ассемблер)0)0))0
Oleksii
Пишем на луа
Борисов
то-есть можно?
Ты можешь выделить память под весь объем, который необходим твоему двумерному массиву. А потом проинициализировать правильно
Andrii
Когда я пишу на Си, я более-менее уверен в том, что мой код запустится почти везде. Язык простой как веник, понятно что происходит. Ну небольшой синтаксический оверхед иногда, но мне не сильно мешает. С другой стороны есть доступ к сишным хакам, до которых привык. Ну и git, python многие либы написаны на C, и никто их не собирается переписывать...
Чеслав
Всем привет может кто то сталкивался с библиотекой electron js ? выдает ошибку в консоль "electron." не является внутренней или внешней командой, исполняемой программой или пакетным файлом. Waiting for the debugger to disconnect...
Jsx707
Мне тут , помощь нужна , желательно от тех , кто хорошо понимает в Си , у меня тут возвращается значение True , при поске файла , так вот файла самого нет , но прога говорит , что он есть
Vladislav
а скинь кусочек кода)
Ruslan
Можно поискать способ, как вывести директорию этого файла
Ruslan
И посмотреть, чо за файл
Jsx707
#include <stdio.h> #include <stdlib.h> #include <string.h> int analys(char filename[270]); int main(int argc, char **argv) { if(argc <= 1) { printf("Options : --help or --filename for syntax analys\n"); return 0; } if(!strcmp(argv[1], "--version")) { printf("Cobra Engine by sp1cklerboy!\nCurrent Version: 1.0 Beta\n"); } else if(!strcmp(argv[1], "--source")) { printf("https//github.com//sp1cklerboy/cobra-engine\n"); } else { analys(*argv); } return 0; } это главный файл
Jsx707
int analys(char filename[270]) { FILE *fp; fp = fopen(filename , "r"); printf("Checking files........"); if(fp == NULL) { perror("Critical Error:"); exit(1); } printf("Done!\n"); return 0; }
Jsx707
это файл отвечающий за чтение и вывод инфы
Jsx707
что тут не так?
Andrii
А что выдаёт то?
Jsx707
Checking files.........Done!
Jsx707
это должно выдаваться в случае если файл есть , имя файла указывается аргументом
Andrii
int analys(char filename[270]) int analys(const char * filename) лучше
Jsx707
я тоже думал как const сделать , хорошо , поправлю
Andrii
Checking files.........Done!
НУ значит файл открылся нормально. А что дальше? А тебя он даже не закрывается
Jsx707
АААА и поэтому он думает , что он есть? Он кэшируется куда-то чтоли или типа того?
Andrii
analys(*argv); А єто что за зверь?
Andrii
АААА и поэтому он думает , что он есть? Он кэшируется куда-то чтоли или типа того?
Никуда не думается, просто открыли, проверили что отркрыт и похерили дескриптор
Andrii
И судя по всему отрыли свой же ELF
Jsx707
analys(*argv); А єто что за зверь?
Ну он ваще отвечает за анализ файла , оттуда кое что читаться должно и в другом файле выполняться , типа как набор команд , который потом будет нанализироваться и выполняться короче
Andrii
Елси вставить printf("File name is “%s”\n", filename); в analys то можно удивиться
Jsx707
Что ты передаёшь туда?
в analys я передаю аргумент , ну имя файла , который указан как раз в качестве аргумента argv
Алексей
в ЛС смотри
Спасибо ещё раз
Jsx707
как видишь analys принимает строку filename и потом fp открывает все этот дело
Jsx707
Но почему он думает , что файл есть?
Алексей
в каком смысле почистить?
Да глупые и не нужные иногда пустые проекты поудалял. Все получилось. Всем спасибо))
Борисов
Но почему он думает , что файл есть?
Потому что ты передаешь в analys аргумент под номером 0
Jsx707
вот , файла нет
Борисов
Да
Jsx707
хорошо , заранее спасибо
Andrii
в analys я передаю аргумент , ну имя файла , который указан как раз в качестве аргумента argv
Нет, ты передаёшь нулевой аргумент, а это путь к самому ELF-файлу
Алексей
А зачем вообще в наше время на С писать ?
С тем же успехом можно спросить зачем на плюсах виндовс формы чирикать
Andrii
ааа , то тесть надо argv[1]?
Опять же, отладка... Хотя-бы отладочные принты...
Jsx707
Все , спасибо вам огромное , работает
Какой-то Ⱈ из интернета
Какой-то Ⱈ из интернета
Что произойдет ?
Алексей
Ты можешь выделить память под весь объем, который необходим твоему двумерному массиву. А потом проинициализировать правильно
Кстати я писал эксперимент : int n, m; cin >> n >>m; Int arr[n][m]; while(true){ cin >> arr[n][m]; } И это работает корректно)))
Andrii
И есть пару расширения С++ наверное
Jsx707
а почему кстати ошибка выводится раньше , чем Checking files....
Jsx707
int analys(const char filename[270]) { FILE *fp; printf("Checking files......"); fp = fopen(filename , "r"); if(fp == NULL) { perror("Critical Error"); exit(1); } printf("Done!\n"); fclose(fp); return 0; }
Jsx707
вот вывод
Jsx707
Critical Error: No such file or directory Checking files......ruslan@ruslan-h410ms2v2:~/gl_learning/src/cobra_engine_script$
Алексей
А должно не корректно ?
Я слышал что так можно только с одномерными, э большие ошибку выдают
Борисов
Кстати я писал эксперимент : int n, m; cin >> n >>m; Int arr[n][m]; while(true){ cin >> arr[n][m]; } И это работает корректно)))
Эта штука называется variable length array и с ней много нюансов, насколько я понял) https://stackoverflow.com/questions/60367199/variable-length-array-used-c
Какой-то Ⱈ из интернета
В резюме напишу что С знаю.
Алексей
Это C99.
Нет это ++17 я писал на repl.it clang, там написано что это С++17
Алексей
В резюме напишу что С знаю.
Не забудь ещё С++)) и написание игр. Я подтвержу если что))
Борисов
Нет это ++17 я писал на repl.it clang, там написано что это С++17
https://www.geeksforgeeks.org/variable-length-arrays-in-c-and-c/ Посмотри. Это хитрая фича)
Bogdan
а блин я не так прочитал
Какой-то Ⱈ из интернета
И плюсы тоже)))) За 5 минут и С и С++ выучил, пойду Ассемблер за 10 выучу.
Dmitriy
народ,подскажите плиз,какой командой можно с помощью библиотеки телебот проверить ввод сообщения,а именно если ввод цифр-пропускает,если буквы-нет
Алексей
https://github.com/alexeysklemin/Phonebook4/blob/master/Phonebook4/Function.h Помогите мне с проектом. В этом файле Function.h выдает 3 ошибки. Но в первую очередь 49 строка datagridview 1не определена. Это как? У меня в форме она есть
Jsx707
Бляха , извиняюсь , что Вас отвлекаю , но что за чертова магия ? Если я передаю argv[0] , то он всегда говорит , что файл есть , передаю argv[1] , файла всегда нет
Какой-то Ⱈ из интернета
Как вам идея сделать это синтаксисом какого-нибудь ЯП ?: 6X6 01.0)),.•¹0),1•.00# 0•¹1•.{1•1X3}.0# 0.•¹1.{•¹1)),X2}.00# 0.{•²1.0),•X2T3}.•²1²•.T3# {0X6}# {01.1•X23}# 01.1),•.0),•.00# 01.•1.•³0),.•²0),•.1# 01.1),•²1.0),1.00# 01.{1),•1X2}0# {1•.1•.X2T}.1.T.0
Борисов
Бляха , извиняюсь , что Вас отвлекаю , но что за чертова магия ? Если я передаю argv[0] , то он всегда говорит , что файл есть , передаю argv[1] , файла всегда нет
https://ravesli.com/urok-110-argumenty-komandnoj-stroki/ "... Нулевой параметр — это путь и имя текущей программы. Первый и второй параметры здесь являются аргументами командной строки, которые мы передали."
Andrii
Ты запускаешь программу /home/user/app/my-cool-app /path/to/file argv[0] == "/home/user/app/my-cool-app" argv[1] == "/path/to/file"
Ivan
Есть тут те, кто только начал изучать js (прям только начал), чтобы вместе заниматься? Для мотивации и помощи друг другу😄
Jsx707
Ты запускаешь программу /home/user/app/my-cool-app /path/to/file argv[0] == "/home/user/app/my-cool-app" argv[1] == "/path/to/file"
ну я единичку и передаю , но тогда он всегда говорит , что файла нету