草庐IT

c - 传递 C 字符数组并分配导致程序崩溃

我不知道错误是什么,因为这是在Windows上发生的,我不知道如何在Windows上逐步执行程序。关于为什么程序在这里崩溃的任何想法(见评论行)?我认为这可能与内存滥用有关。#defineTABLE_MAX_ROW500#defineTABLE_MAX_COL20#defineTABLE_MAX_ELT_LEN60从这里开始:foo(){chartable[TABLE_MAX_ROW][TABLE_MAX_COL][TABLE_MAX_ELT_LEN];bar(table);}传递给这个函数:bar(chartable[TABLE_MAX_ROW][TABLE_MAX_COL][TAB

c++ - 在 Windows 平台上为 c/c++ 代码生成调用图的工具?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Toolstogetapictorialfunctioncallgraphofcode我有一些c/c++代码。我想知道任何可用于在Windows平台上生成调用图、提供有关调用者等信息的工具。

c - 在 c 中运行代码时 Windows 中的奇怪错误

我写了一些代码来解决英国信息学奥林匹克问题1(2012)在c中。如果它对任何人有任何帮助,或者可能感兴趣,程序会找到一个数的唯一质因数的乘积。如果数字是素数,则返回原始数字。它应该可以处理1000000的输入,并且在linux和mac上编译时也是如此。由于某些原因,当它在windows上编译时(使用mingw编译器)它不适用于520558以上的输入!这可能与声明一个长度为520558个整数的数组有关,但我不知道如何补救。任何帮助将不胜感激谢谢。代码:#include#includeintmain(intargc,char*argv[]){printf("Pleaseenteryouri

c++ - 如何使用 C/C++ 在 exe 中完全内部存储用户设置?

这更多的是关于如何以及是否真正解决问题的问题。HowcanyoustoreusersettingscompletelyinternallyinanexewithC/C++?这甚至可能吗?如果可以,如何实现?我主要只是好奇,因为我真的想不出办法,对我来说,有些应用程序似乎可以做到这一点。注意:我已经知道生成子进程、使用文件、云或注册表等方法,我只是想知道您是否真的可以在内部保存设置。 最佳答案 你可以用迂回的方式。但是您将不得不担心修改可执行文件的影响,这可能会阻止它再次执行。例如,如果你制作一个简单的程序intmain(){std:

c - Windows Driver 时间戳函数

我正在修改现有的Windows内核设备驱动程序,我需要在其中捕获时间戳。我打算使用time.h库并调用clock()函数来获取它,但是在windowsvisualstudio下,链接失败了。所以我把它当作我需要在驱动程序库中工作的一种方式。我找到了以下函数,KeInitializeTimer和KeSetTimerEx,但如果我计划设置定时器并在其上唤醒,则会使用这些函数。我真正需要的是能给我一个时间戳的东西。有什么想法吗? 最佳答案 我正在用答案更新我的问题,以便其他人从我的发现中受益。要获得时间戳,您可以使用KeQueryTick

c - Windows错误参数类型c编程

我有这段代码,但我没有使用Windows的经验:#include#includetypedefBOOL(WINAPI*P_GDFSE)(LPCTSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);voidmain(intargc,char**argv){BOOLfResult;char*pszDrive=NULL,szDrive[4];DWORDdwSectPerClust,dwBytesPerSect,dwFreeClusters,dwTotalClusters;P_GDFSEpGetDiskFreeSpaceEx=NULL;un

c - gtk_entry_get_text 不工作

我在c中使用GTK2.2。我可以从其中一个条目中获取文本并使用类型转换将其转换为整数,但它不适用于第二个条目。由于某种原因,我设置为从第二个条目获取文本的变量保持为0。这是我的代码。button2_clicked部分不工作,但问题也可能出在button2g_signal连接上。#include#includeintprod,prod_amt,amt,amt_holder,tot_amt;staticvoidbutton3_clicked(GtkWidget*widget,gpointerwindow){GtkWidget*dialog;dialog=gtk_message_dialog

c - 变量的值存储在 C 中的位置

在下面的代码段中:intfunc(){inta=7;returna;}可执行文件中存放数值7的代码段是什么?或者是在数据段还是在代码段?答案取决于操作系统还是编译器? 最佳答案 每个可执行格式都有一些部分。其中之一是text,包含汇编-二进制代码。其中之一是heap,其中可以找到malloc编辑的数据,而stack是存储局部变量的地方。还有其他几个,但现在无所谓了。以上三种随处可见。现在,像您的a这样的本地数据驻留在堆栈中。在可执行文件中,该值存储在text部分。我在你的代码中添加了一个main(返回0),用-g编译然后执行objd

c - 使用 itoa 时未处理的异常

下面是我的代码的一部分。我不确定它有什么问题,因为当我调试这段代码时,出现以下错误:Unhandledexceptionat0x60e8144c(msvcr90d.dll)inclient0.exe:0xC0000005:Accessviolationwritinglocation0x00000000.这是itoa行中的某处。代码:intnum=LOWORD(lparam);char*number=NULL,*detail=NULL;(char*)itoa(num,number,10); 最佳答案 您必须将有效的初始化指针传递给it

c++ - 在使用 NT DDK 构建的用户模式程序中包含 C++ header

所以...我有一个内核模式组件和一个用户模式组件,我正在使用NTDDK7.1.0的交key构建环境放在一起。.内核组件都是.c/.h/.rc文件。用户模式组件是.cpp/.c/.h/.rc文件。起初,对两者都使用build似乎是最简单的,因为我看到您可以修改./sources用户模式组件的文件说这样的话:TARGETNAME=MyUserModeComponentTARGETTYPE=PROGRAMUMTYPE=windowsUMENTRY=winmainUSE_MSVCRT=1这似乎没有引起问题,所以我很高兴,直到我尝试#include(或或其他)找不到那个东西:errorC1083