c相关内容

如果两个类型在C中彼此兼容,这到底是什么意思?

在C标准中陈述(强调我的): 如果两个类型的类型相同,则它们具有兼容的类型。类型说明符的6.7.2、类型限定符的6.7.3和声明符的6.7.6中描述了确定两个类型是否兼容的其他规则。56) 56)两种类型不必完全相同即可兼容。 来源:C18,§6.2.7/1-兼容类型和复合类型 我从这些句子中得到的信息不多,也不是很有帮助。通常,引用的部分也不提供有关兼容的确切含义的更多信息。 ..
发布时间:2022-06-06 11:24:53 其他开发

在C/C++程序中,系统(Windows、Linux、Mac OS X)如何调用main()函数?

我正在寻找比操作系统调用该函数更技术性的解释。 谁能帮我解决问题,或者给我指个网站或书? 推荐答案 .exe文件(或其他平台上的等效文件)包含一个“入口点”地址。大致来说,操作系统会将.exe文件的相关部分加载到RAM中,然后跳到入口点。 正如其他人所说,这个入口点将不是‘main’,而是运行时库的一部分-它将执行初始化静态对象、设置argc/argv参数、设置stdin/st ..
发布时间:2022-05-31 18:35:34 C/C++开发

快速排序实现不适用于重复键

我尝试实现快速排序。它工作得很好,除非有重复的键,在这种情况下会有一个无限循环,并且永远不会结束。你能帮我弄明白我做错了什么吗? // quick sort void quickSort(int arr[], const unsigned size) { // base case if (size ..
发布时间:2022-05-23 20:43:52 其他开发

如何在c中将静态数组转换为动态数组?

假设我有一个静态数组 int a[10]; 在某个时刻,我要插入第11个元素的程序。因此它将引发错误,显示为Index Out Out Range(索引超出范围)错误。 所以我想创建动态数组a[]。而无需更改静态数组。并且我希望在运行时向数组a[]提供更多的输入(意味着可伸缩性)。 推荐答案 int a[10];替换为int *a = malloc(10 * sizeo ..
发布时间:2022-05-23 14:56:30 其他开发

线程中的动态分配和释放

我在线程中分配一些内存。当我调用pthread_detach(pthread_self());时,应该在pthread_exit();或pthread_cancel()终止线程后释放Linux为该线程分配的内存。 我的问题是,我是否也应该释放使用Malloc分配的内存?另外,如果线程中的其他函数分配了一些空间,即使线程被终止并且pthread_detach(pthread_self());在线程 ..
发布时间:2022-05-23 14:39:39 服务器开发

动态数组的惯用初始化是否会调用未定义的行为?

这个问题可能有点争议。 我在块作用域中有以下代码: int *a = malloc(3 * sizeof(int)); if (!a) { ... error handling ... } a[0] = 0; a[1] = 1; a[2] = 2; 我认为这段代码调用ub是因为指针算法超出界限。 原因是a对象指针的有效类型永远不是 设置为int[3],但仅设置为int。因此,对索引处的对 ..

Printf和睡在For Loop里面?

我不明白为什么下面的代码是这样工作的.我的意思是:不是在每一秒延迟后打印“Hello”...它等待5秒并立即显示hellohellohellohellohello。 #include int i; for(i=0; i ..
发布时间:2022-05-23 12:09:02 服务器开发

C11的睡眠功能

我想在C11节目中睡觉。不会同时使用GCC(4.8.2)和clang(3.2)的-std=c11选项声明usept(unistd.h)或nanosept(time.h)。 Agrep sleep /usr/include/*.h未显示任何其他可能的睡眠候选项。 我需要至少毫秒精度的睡眠。 我如何在C11中入睡? 推荐答案 使用-std=gnu11而不是-std=c11 ..
发布时间:2022-05-23 11:44:28 其他开发

使用运行进程的共享内存收集核心转储

核心转储仅收集进程空间,而不收集为进程间通信创建的共享内存。如何使核心转储也包含正在运行的进程的共享内存? 推荐答案 在/proc/PID/coredump_filter中设置核心文件筛选器http://man7.org/linux/man-pages/man5/core.5.html: 控制将哪些映射写入核心转储 Since kernel 2.6.23, the L ..
发布时间:2022-05-18 09:37:09 服务器开发

Windows共享内存段

我在谷歌上搜索了一下,还没有找到一个明确的答案,所以我希望有人能对Windows和Linux中的共享内存段有一些了解。 在Linux中,有两种为IPC创建共享内存的方法:共享内存段(shmget等)和内存映射文件(Mmap)。根据我的简单理解,mmap要求您在操作系统中的某个地方有一个要映射的实际文件,而共享内存段只是内存中可以由进程附加的基于名称的段。 在Windows中,似乎只有内存映 ..
发布时间:2022-05-18 09:12:51 其他开发

使用CURL中的UTF-8数据流,数据流何时从UTF-8转换为ASCII?

使用cURL从Internet获取字符流时,数据流何时从多字节数据类型转换为单字节字符数组? 我编写了一个程序here,它似乎在回调函数中使用ASCII运行。 但是,我编写了另一个使用带有wchar_t数据类型的UTF-8的程序,它似乎也可以工作。数据流似乎没有区分这两种数据类型,即使在我的机器上wchar_t类型是4字节,而字符是1字节。 我猜有某种类型转换对这个程序是透明的,但我 ..
发布时间:2022-05-17 16:59:16 其他开发

C++中的cURL_MULTI_Perform()示例

我花了几个小时试图弄清楚如何以一种通用的方式实现cURL_MULTI_PERFORM()。此示例可能会对其他示例有所帮助。 它基本上接受一个结构对象,并将所有的cURL输出放入其中作为一个字符串。然后,程序员可以获取该字符串并执行他们喜欢的任何处理。如果有人有任何改进,等等,我非常乐意看到他们。 这是一个名为";Multiurl.h";的头文件,具有结构和函数原型。 ..
发布时间:2022-05-17 16:49:14 其他开发