c中的自由function

我已经为某些数据类型分配了内存并分配了一些值。 现在使用free是删除内存中的数据与否? 如果未删除分配的数据,使用free用途是什么? 谁能帮我吗? 例如: int *arr; arr=(int*)malloc(sizeof(int)*1000); assert(arr!=NULL); /*Some operation*/ arr[123]=354; //some operations printf(“%d”,*(arr+123)); //calling some funcs free(arr); printf(“\n%d”,*(arr+123));

从C转换为C#,还是制作DLL?

我是C#编程的新手。 我有一个用C语言修改的程序,我现在需要从C程序中获取字符串数组并将其传递给C#程序,以便它可以使用这些值查询Oracle数据库。 该程序用于从连接到计算机的所有iButton设备获取序列号。 这是C代码 // function prototypes void UnLoadTMEX(void); short LoadTMEX(void); // globals static FARPROC Get_Version, TMGetTypeVersion, TMEndSession; static FARPROC TMSetup, TMNext, TMRom, ExtendedStartSession; static FARPROC TMReadDefaultPort; long (__fastcall *TMExtendedStartSession)(short,short,void *); static HINSTANCE hInst; unsigned char state_buf[5125]; //————————————————————————– // Main of iSerial64 // void main(int argc, char **argv) { char refresh,buf[200]; short flag,i,didsetup=0; short ROM[9]; […]

是否可以在DLL中导出C链接的C ++成员方法?

在cpp文件中考虑这个: struct someStruct{ public: extern “C” __declspec(dllexport) int sumup(); } someStruct; extern “C” __declspec(dllexport) int someStruct::sumup() { return 0; } 这不编译: error: expected unqualified-id before string constant是否无法使用C链接导出C ++成员方法?

`read()`可以直接跟在`read()`和`read()`之间的`read()`吗?

在C标准库中,输出不能跟随输入,反之亦然。 对于Linux API, read()可以通过read()直接后跟write()和write() read()吗? 如果是,为什么Linux API和C库IO API之间存在这样的差异? 谢谢。

最小素数发生器C.

我必须在C中创建一个最小素数生成器(我们需要至少有两位数的最小素数)并且我不能使用表。所以我的想法是首先找到所有素数,其次是使用掩码来查找每个素数的所有子序列。数字,最后检查每个子序列是不是素数。我找不到最小素数因为我没有设置条件来检查子序列是否为素数?(我的代码没有准备好所以它可能有一些错误,但它运行)我的代码 #include #define MAXNUMB 100 int main () { int i,j,x,mask,max=1,mult,sub; for (i = 11 ; i < MAXNUMB; i += 2 ) { for (j = 3; j * j i) { int length = 0; int tmp=i; while (tmp != 0) { tmp /= 10; length++; } for (x=1;x<length*2;x++) { mask=x; mult=1; sub=0; […]

C – 在函数中使用fgets()从stdin读取行

我试图用stgets()从stdin读取行,我想在我的函数中使用fgets(),我认为这是问题所在。 字符串最长可达1024个字符。 当我运行此代码时,我得到“Segmentation fault(core dumped)” #include #include #include #define MAX_SIZE 1025 void print_fgets(); int main() { print_select(); return 0; } void print_select() { char *str; int length; while (fgets( str, MAX_SIZE, stdin)!=NULL) { length=strlen(str); if (length==MAX_SIZE-1 && str[length-1]!=’\n’) { printf(“Error, line overeached buffer!\n”); return 1; } if (str[length-1]==’\n’) str[length-1]=’\0′; printf(“%s\n”, str); } }

C:在function选项中找到未解析的外部符号(函数名称)。 LINK 2019错误

这是我的代码: #include #include #include #include int hours; //hours worked. double rate; //Hourly rate double regular; //Regular pay double overtime; //how many hours the user worked overtime. double gross; //Gross salary double federal; //Federal tax of 27% double medical; //medical insurance, 14% double net; // Pay after federal tax and medical insurance is taken out. char […]

c – 删除注释(/ *和//)和字符串

任何人都可以告诉我,以下代码中有什么错误,它假设从输入中删除注释和字符串(但不是注释,这就是它识别注释的原因)? 这与我之前的问题有关: 使用滑动窗口删除注释而没有嵌套的while循环 #include int main() { int c, c1 = 0, c2 = 0 ,state = 0, next = 0; while(1) { switch(state) { case 0: next = ((c2 == ‘*’ && c1 == ‘/’) ? 1 : (c2 == ‘\”‘) ? 2 : (c2 == ‘/’ && c1 == ‘/’) ? 3 : […]

区分单词中的单词

我的trie中有一个单词“all”,单词“alter”但是“alt”不是trie中的单词。 但是当我检查“alt”时它仍然返回true,因为is_word为真,因为“all”是一个单词。 应该如何处理这个错误。 //Here’s the code typedef struct node{ bool is_word; struct node *children[27]; } node; unsigned int wsize=0; node * root; bool check(const char* word) { // TODO node *chrawler=root; for(int i=0;i=65&&word[i]children[t]==NULL) return false; else chrawler=chrawler->children[t]; } if(chrawler->is_word) return true; return false; } // Load function bool load(const char* dictionary) { // TODO FILE […]

Fork永远不会进入孩子的过程

我正在编写一个模仿shell行为的代码,特别是&和|。 我的函数接收用户命令,并检查是否有&在最后,然后子进程应该在后台运行,父进程不应该等待它完成并继续执行命令。 它也应该检查是否有| 在输入数组中运行两个子进程,同时管道他们的stdin和stdout。 我已经实现了&的行为,但每当我编译并运行我的代码时,我只从父进程中获取printf语句。 我想听听如何解决这个问题的想法,此外,我将不胜感激任何关于|的实施的建议 (管道)以及如何防止僵尸。 int process_arglist(int count, char** arglist) { int pid = fork(); printf(“%d”, pid); switch (pid) { case -1: fprintf(stderr, “ERROR: fork failed\n”); return 1; break; case 0: // Son’s proccess printf(“I got to son”); //check last arglist argument if (strcmp(arglist[count – 1], “&”) == 0) { setpgid(0, 0); arglist[count […]