Tag: 数组

swig从struct中的变量获取返回类型作为java中的字符串数组

对于一个小型Java项目,我需要与用C编写的现有代码进行交互,所以为了简单起见(不幸的是我不是C / C ++程序员……)我决定使用swig。 我遇到的第一个问题:返回NULL分隔字符串的C函数导致返回String的包装代码,只包含第一个值,由Flexo提供的3(!)可能解决方案解决: SWIG从String获取返回类型java中的字符串数组 在继续开发这个项目时,我遇到了第二个问题(类似?)模式让我感到困惑:headerfile包含一个结构“PROJECTDETAILS”,它反过来包含一个变量itemList(应该)包含一个NULL分隔的String。 用于itemList的swig生成的getter将第一个结果作为String返回,就像我原始链接问题中的GetProjects函数一样(包含第一个结果的String)我试图将Flexo提供的答案应用于此问题,但是我’无法“键入”itemList变量 C头文件中的函数指出: typedef struct _PROJECT { int version; unsigned char vM; unsigned char fM; } * PROJECT; typedef struct _PROJECTDETAILS { int infoType; union { char *itemList; /* Returns a NULL-delimited string */ char *projectName; } info; } PROJECTDETAILS; DllImport PROJECT OpenProject dsproto((int, char *)); DllImport int GetProjectDetails […]

如何在C中创建用户定义的struct数组

我希望用户在程序启动时定义数组的大小,我目前有: #define SIZE 10 typedef struct node{ int data; struct node *next; } node; struct ko { struct node *first; struct node *last; } ; struct ko array[SIZE]; 但是,我想删除#define SIZE ,让SIZE成为用户定义的值,所以在main函数中我有: int SIZE; printf(“enter array size”); scanf(“%d”, &SIZE); 我怎样才能获得数组的值? 编辑:现在我在.h文件中有以下内容: typedef struct node{ int data; struct node *next; } node; struct ko { struct node […]

如何修复用C编写的代码?

它适用于20-20表,但对于其他任何事情它都会崩溃。 该文件位于以下链接: http : //www.csd.uoc.gr/~hy100/glid.txt 。 我无法弄清楚问题是什么,因为当我放一个20-20的表时它起作用,当我给21-20表时,它完全可以完成工作,但在能够返回0之前崩溃; 。 #include #include int height, length; char **world, **new_world; int load_world_from_file(char filename[]) { int i, j; char ch; FILE *fp; fp = fopen(filename, “r”); if (fp == NULL ) { perror(“Error while opening the file.\n”); exit(EXIT_FAILURE); } fscanf(fp, “%d %d”, &height, &length); printf(“here:%d,%d\n”, height, length); /*dilosi dunamika tou […]

数组被覆盖时遇到问题

我正在尝试将一个拼字游戏字典加载到内存中,但是当我打印出字典的内容时,似乎已经用buf看到的最后一个字符串重写了我的数据数组中的每个字符串,例如,当我打印出来时最后的数据数组,数组中的每个条目都是’zzz’,因为它是scrabble.txt中的最后一个条目。 我不明白为什么会被覆盖? 我究竟做错了什么? #include #include #include #include #define LEN 100 struct data_t { int nval; /* current number of values in array */ int max; /* allocated number of values */ char **data; /* the data array */ }; enum {INIT = 1, GROW = 2}; int main(void) { FILE *fp = fopen(“scrabble.txt”, “r”); char […]

在C中将多维数组转换为单维数

如果我在C中有如下定义的数组: int B[d1][d2][d3][d4][d5][d6][d7][d8][d9]; 然后很容易将“B”转换成单维的。 但是,如果我在C中有一个数组,定义如下: int********* A; //which will be allocated as follows for example A = (int*********) malloc(N*sizeof(int********)); for(int i=0; i<N; i++) { //differentSizes will be distinct for every "i" //the same distinctness of sizes will be for every other //inner parts of all inner for loops compute(&differentSizes); A[i] = (int********) malloc(differentSizes*sizeof(int*******)); for(…) { […]

数组随机排序

我有下面的代码,我希望从文件中读取文本,在数组中存储单词,然后以随机顺序打印出来。 最终的数组是int,但应该是char,它不会给我正确的答案。 #include #include #include #include int main() { char message[10][150], buffer[150]; int i = 0; int cntr = 9; char freeArray[9]; srand(time(NULL)); freeArray[i] = rand() % cntr; FILE *file_in; file_in = fopen(“test.txt”, “r”); while (fgets(buffer, 150, file_in)) { i = rand() % cntr; strcpy(message[freeArray[i]], buffer); } while (cntr >= 0) { i = rand() […]

不能在C中正确读取带有密码的.txt文件

对于我的代码,我需要创建一个包含用户名(名字)和密码(姓氏)的.txt文件。 我的代码需要读取该文件。 如果我输入了正确的用户名和密码,它将登录。如果不正确,则不会登录。到目前为止,在我的name.txt文件中(包含我的用户名和密码的文件)我有Lebron James,Joe Smith。 当我运行我的代码时,我只是在命令提示符下显示“无法打开文件names.txt”。 我想知道我需要对我的代码进行哪些更改? //This is my code: #include #include #include #define MAX_USER 32 void get_input(const char *pszPrompt, char *cpszWord, const size_t iLength) { while (1) { printf(“%s> “, pszPrompt); if (fgets(cpszWord, iLength * sizeof(char), stdin)) { break; } } size_t iLen = strlen(cpszWord); if (cpszWord[iLen – 1] == ‘\n’) cpszWord[iLen – […]

如何在C中对非常大的数组进行排序

我想在C中排序四百万long long s。通常我只是malloc()一个缓冲区用作数组并调用qsort()但是四百万* 8字节是一大块连续内存。 最简单的方法是什么? 为此,我对速度感到轻松。 我不想使用任何库,结果将需要在Windows和Linux下的适度上网本上运行。

堆栈:无法将几个字符推入数组

我有一个使用数组实现堆栈的代码,这里是完整的代码: 这里 这个案例就是为什么我不能推出多个角色,而只能推出一个角色? 但我一直在点击一些变量,使用struct初始化她为数组forms推送一些字符: struct stackMhs { char nama[10]; char npm[10]; char telp[10]; int size; }; struct stackMhs stackMhsbaru; 这是带有参数的push()函数,该参数将是函数main()的数据内容: void push(char nm, char np, char tel) { if(stackMhsbaru.size != 10) { stackMhsbaru.nama[stackMhsbaru.size + 1] = nm; stackMhsbaru.npm[stackMhsbaru.size + 1] = np; stackMhsbaru.telp[stackMhsbaru.size + 1] = tel; stackMhsbaru.size++; } else { printf(“stack is full!”); } […]

如何制作一组每个arrays位置都是我的数字位数的整数?

所以我正在考虑的是一个小程序,用户输入二进制数(即1010010100111000001),然后将其存储在一个数组中,每个数组位置与我的数字的数字相关联。 示例:位[0] = 1,位[1] = 0等。我想到的代码是这个,但我不相信它有效: int bit [31]; scanf(“%i”, bit); 请帮忙!