Tag: c

不太有用的错误 – 家庭作业中的分段错误(核心转储)

编译包含此特定函数的程序时, /* * Function read_integer * * @Parameter CHAR* stringInt * * Parameter contains a string representing a struct integer. * Tokenizes the string by each character, converts each char * into an integer, and constructs a backwards linked list out * of the digits. * * @Return STRUCT* Integer */ struct integer* read_integer( char* […]

改进快速排序

如果可能,我如何改进以下快速排序(性能明智)。 有什么建议? void main() { quick(a,0,n-1); } void quick(int a[],int lower,int upper) { int loc; if(lower<upper) { loc=partition(a,lower,upper); quick(a,lower,loc-1); quick(a,loc+1,upper); } } /* Return type: int Parameters passed: Unsorted array and its lower and upper bounds */ int partition(int a[],int lower,int upper) { int pivot,i,j,temp; pivot=a[lower]; i=lower+1; j=upper; while(i<j) { while((i<upper)&&(a[i]pivot)) j–; if(ia[j]) { temp=a[j]; […]

如何正确地将TAG值转换为正确的格式以便validationHMAC?

我正在进行HMAC生成和validation以检查数据完整性。 我可以正确生成MAC值但是当通过套接字将其发送到另一个程序进行validation时,我遇到格式不匹配。 我感谢您的支持。 谢谢。 unsigned char* MAC(unsigned char* key,unsigned char* message) { unsigned char* result; unsigned int result_len = 32; int i; result = (unsigned char*) malloc(sizeof(char) * result_len); result = HMAC(EVP_sha256 (), key , strlen (key), message , strlen(message) , NULL, NULL); return result; } int verifyMAC(unsigned char* key,unsigned char* message, unsigned char* receivedTag) […]

如何让Python GUI调用用C编写的遗传算法

我是Stack Overflow的新手。 我有一个用C编写的遗传算法,它以0-100的forms接受用户输入,并输出一个数字数组。 C代码是一个完整的独立编译程序。 它有一个命令行界面。 我对编程比较陌生,主要是黑客攻击,直到找到特定任务的解决方案。 我在阅读Python Subprocess管理文档时非常困惑。 我有一个使用tkinter用Python编写的GUI,我有一个框,用户可以在其中键入他们的响应值(0-100)。 我的代码中也有一个空数组,我希望用遗传算法的输出填充。 用户将使用该数组作为某些内容,给出另一个响应(0-100)C代码将获取该响应,生成另一个数字数组,并继续该过程。 我的问题是,任何人都能用简单的术语向这个新手解释如何使用子进程模块将我的python GUI和C代码遗传算法链接到一起吗? 谢谢!

CentOS 6.5秒杀

我在C中开发了一个应用程序。我在“Red Hat Enterprise Linux Server 5.8(Tikanga)”上运行这个应用程序,一切看起来不错,但是当我们在“CentOS 6.5版(最终版)”上部署这个应用程序时,它开始出现问题。 它占据了更多的chache内存,并在30-45分钟之后飙升,所有cpu显示100%的cpu利用率,持续1-2秒。 我谷歌这个问题,发现CPU在Cent OS 6.3上的高使用率 由于我的应用程序中的一个进程使用10 usleep。 RedHat的CPU占用率不到3%,但CentOS占据了相当高的90%左右。 当我将睡眠从10 usleep更改为1000 usleep或1 us时读取链接后,需要40%的CPU。 我需要知道CentOS 6.5的内核是否使用高速定时器,或者我需要在编译内核时设置任何配置。

libxml2和XPath在ANSI C中遍历子节点和兄弟节点

我在Perl中做了很多XML工作,现在我需要在ANDI C中为项目做一些事情。 这是我用XML片段编写的代码。 我已经获得了学位的成功,但是我遇到了兄弟姐妹的问题,我相信这很容易,但我无法得到它。 有两个函数,一个只是简单地获取节点集(直接从xmlsoft.org复制)。 第二个function是我的。 xmlXPathObjectPtr getnodeset (xmlDocPtr doc, xmlChar *xpath){ xmlXPathContextPtr context; xmlXPathObjectPtr result; context = xmlXPathNewContext(doc); if (context == NULL) { printf(“Error in xmlXPathNewContext\n”); return NULL; } result = xmlXPathEvalExpression(xpath, context); xmlXPathFreeContext(context); if (result == NULL) { printf(“Error in xmlXPathEvalExpression\n”); return NULL; } if(xmlXPathNodeSetIsEmpty(result->nodesetval)){ xmlXPathFreeObject(result); printf(“No result\n”); return NULL; } return result; […]

C ++是否允许VLA作为函数参数

给定代码用于生成魔术方块,其中我已使用VLA作为函数 create_magic_square(int n,int magic_square [n] [n]) print_magic_square(int n,int magic_square [n] [n]) #include void create_magic_square(int n, int magic_square[n][n]); void print_magic_square(int n, int magic_square[n][n]); int main() { int size; printf(“This program creates a magic square of a specified size”); printf(“The size be an odd number between 1 and 99”); printf(“Enter the size of magic square: “); scanf(“%d”, […]

链接器错误内联函数

我有一些编译器/链接器错误,我不知道什么是正确的方法来继续。 我遇到这种情况: 啊:在这个文件中定义了一个声明为“inline”的函数,例如:inline void foo1(); bh:在这个文件中定义了一个声明为“inline”的函数,它调用foo1():inline void foo2(); main.c:foo1和foo2()都有一些函数调用。 现在,如果我在ah和bh中声明foo1和foo2作为extern inline void我得到以下错误: prj / src / bo:在函数foo1′: (.text+0x0): multiple definition of :(。text + 0x0):foo1’prj / src / main.o :(。text + 0x0)的foo1′: (.text+0x0): multiple definition of :这里首先定义make: * [kernel]错误1 在我描述的情况下,允许编译和链接而没有错误/警告的方式是什么?

是否可以在C中重复使用opendir?

我正在尝试在C中进行调试,我很好奇,如果可以反复调用opendir()而不必先调用closedir(),因为我试图在调用while循环时运行循环来打开子目录readdir()遇到它们。 我假设关闭当前目录会导致我无法读取它。

printf输出错误的数字

int main() { double i=4; printf(“%d”,i); return 0; } 谁能告诉我为什么这个程序输出0?