Tag: c

如何在C中初始化指向指针的指针

所以我得到了这个包含2个字段的struct Node : DataP data , void * key , DataP只是void*的typedef 。 我创建了一个双指针Node **table ,使其像2D数组一样。 我无法想象如何malloc它,我希望这个双指针充当2D数组,其中2为行数,x为cols数。 我试过table = (Node**)malloc(sizeof(Node*)*2); 但这是对的吗? 我该如何从这里继续?

在C中拆分未加引号的字符串

我正在编写一个函数将字符串拆分为指向指针的指针,如果separator是空格,我想只拆分不在引号内的单词。 例如Hello world “not split”应该返回 Hello world “not split” 不知何故,该函数将引号内的单词拆分,并且不会在引号之外拆分单词。 #include #include #include int is_quotes(char *s) { int i; int count; i = 0; count = 0; while (s[i]) { if (s[i] == ‘”‘) count++; i++; } if (count == 0) count = 1; return (count % 2); } int count_words(char *s, char sep) { […]

将字符串从文件存储到数组

我已经从两个文件中读取了字符串并将它们存储到两个独立的数组中,然后我尝试对它们进行排序并将它们写入另一个文件中…这部分按照它应该的方式工作,但我真正需要做的是组合字符串从两个数组到一个,以便我可以按字母顺序对它们进行排序,然后写入文件,但问题是,当我尝试将这两个数组存储到一个数组中时,我得到分段错误作为错误消息。我真的不知道如何将这两个数组存储到另一个数组,以便我可以按顺序排序…我知道如何排序它我只是不知道如何将这些读入另一个数组…我不能使用#DEFINE因为我将把所有这些写成测试代码的函数… 我尝试过类似的东西 new [i] = str; 并且: 的strcpy(新[I],STR) 但这些都不起作用……我们将非常感谢任何帮助…… 这是我的代码: #include #include main (void) { char str[200]; char str2[300]; char new[300]; char temp [300]; int linenumber=0; FILE *fa = fopen (“book1.dat”, “r”); FILE *fb = fopen (“book2.dat”, “r”); FILE *fc = fopen (“fixed.txt”, “w”); int i=0; int j=0; int k; /*read the strings into an […]

C错误,需要帮助

我有这个最后的工作项目,我过去几天一直在做,我吓坏了,因为截止日期在这里,我无法找到我的代码有什么问题,我做的一切给了我“分段错误”错误,但是当我编译它不会给我任何错误。 这是以下代码的链接: http : //pastebin.com/tqWc6Dd0这里是代码本身:(但我建议使用链接,忽略评论,葡萄牙语乱码)。 #include #include typedef struct{ char nomenavio; int codigonavio; char tiponavio; int tonelagemnavio; int anonavio; char paisnavio; char armadornavio; }NAVIO; typedef struct{ int numportos; int milhas; int tonelagemtotal; int consumototal; }TOTAL; ///////////////////////////////////////////////////////////&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //FUNCOES DE MENUS///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// int menuprincipal(){ int controlo=0; printf(“\n Ola, escolha a opcao desejada:\n\t1-ADICIONAR NOVO NAVIO\n\t2-CARREGAR FICHEIROS\n\t3-LISTAR\n”); scanf(“%d”, &controlo); […]

Scanf输入转移到下一个scanf

我在这里有一个代码,在输入带空格的字符串时会有一些不需要的行为。 例如print illegal_argument 。 当有多个单词的输入进来时,我希望它只注册第一个单词。 目前发生的是: christian@oblig2 $ print 0 Enter router ID for information > ID: 0, flag: f7, model_length: 13, model: D-Link y6000 它在命令循环中注册第一个用于比较的print 。 但是,而不是scanf提示用户输入下一个输入,而是忽略该操作,并取消用户从前一个scanf输入的第二个字/数字。 我想要发生的是: christian@oblig2 $ print 0 Enter router ID for information > 0 ID: 0, flag: f7, model_length: 13, model: D-link y6000. 一切都按预期工作,但我想知道是否有更简单的方法来做到这一点。 我尝试过使用Strtok,没有太多运气。 char input[256]; printf(“%s@oblig2 $ […]

C尝试区分通用指针

我试着打电话, g_io_scheduler_push_job(job_func, &param, NULL, G_PRIORITY_HIGH, generator_cancellable); 在我的C/gtk+应用程序中,在另一个线程中运行job_func()然后是主程序。 但是当我调用这个函数时有段错误,并且调试器说:** userdata尝试区分通用指针** job_func()代码是, gboolean job_func(GIOSchedulerJob *job, GCancellable *cancellable, gpointer user_data) { JobParam* job_param = (JobParam*)user_data; build(NULL, job_param->mw); return TRUE; } JobParam , typedef struct _JobParam { GtkWidget* widget; MainWin* mw; }JobParam; MainWin , typedef struct _MainWin { GtkWindow parent; GtkWidget* scroll; GtkWidget* box; GtkUIManager *uimanager; } MainWin; 并build […]

套接字数据损坏

我正在研究一个简单的套接字客户端,它向服务器发送一个简单的字母“p”,然后从服务器读取响应。 除了一个令人困惑的问题外,它正在全力以赴。 第一次读取套接字(它发生在循环中)时,数据会出现乱码和损坏,结果如“ÿýÿû”和“μÞv”。 第一次回复后收到的所有数据都很好且有效。 我用来接收的代码是: int n; char buffer[256]; bzero(buffer,256); strcpy(buffer, “p”); n = write(manSock,buffer,256); if (n < 0) { error("ERROR writing to management server"); } bzero(buffer,256); n = read(manSock,buffer,256); if (n < 0) { error("ERROR reading from management server"); } return buffer; manSock是套接字文件描述符。 有关为何发生这种情况的任何想法?

在一个数组中,如何检查其内容编号中的任何两个是否可以加到某个值x?

可以使用什么命令来检查数组中任何两个数字的总和是否合计为x的某个值。

写入具有不同文件名的单独文件

这就是我想要实现的目标: 假设用户输入是: 生成随机实例…… 输入电路板尺寸MAX_X MAX_Y:100 200 输入点数NUM_PT:10 输入要生成的随机实例数:7 你的程序将生成总共7个实例,写入7个单独的文件“instance10_j.txt”,对于j = 1,2,3,…每个实例都有矩形区域[0; 100] X [0; 200],并且有10分。 在矩形区域内均匀地随机生成点的坐标。 并且您的程序确保每个实例中没有重复点。 如果程序无法生成这些文件,请打印出错误并退出。 所有这些文件都保存在执行命令的当前目录中,程序将打印到屏幕上: instance10_1.txt生成 instance10_2.txt生成 instance10_3.txt生成 instance10_4.txt生成 instance10_5.txt生成 instance10_6.txt生成 instance10_7.txt生成…完成! 这是我到目前为止所做的: int writetofile(max_X, max_Y, numpt, random_inst); int main(int argc, char *argv[]) { FILE *fp; int max_x, max_y, num_pt, rand_inst; int *x_coordinate, *y_coordinate; int inputfile = 0, outputfile = 0; […]

初始化从指针生成整数而没有强制转换

我刚刚开始学习如何编程,我遇到了这样的错误:“初始化从指针生成整数而没有强制转换[默认启用]”有什么问题? // This program pairs three kids with their favorite superhero #include #include main() { char Kid1[12]; // Kid1 can hold an 11-character name // Kid2 will be 7 characters (Maddie plus null 0) char Kid2[] = “Maddie”; // Kid3 is also 7 characters, but specifically defined char Kid3[7] = “Andrew”; // Hero1 will be […]