Tag: 数组

字符数组的初始化字符串太长C

我正在研究一个接受输入并输出与输入相对应的数值的程序。 我在char部分得到了错误。 我不明白为什么当数组中只有27个字符的大小为27时会出现错误? int main () { char greek[27] = “ABGDE#ZYHIKLMNXOPQRSTUFC$W3”; }

是否保证C中的数组元素将连续存储,没有填充?

换句话说:如果我有这样分配的数组,它是否可以保证: void *arr = calloc(nmemb, sizeof(some_type)) 那么elta , eltb , eltc都将指向内存中的相同位置,这将是此数组some_type类型的第二个元素? some_type *elta = &((some_type*)arr)[1]; some_type *eltb = ((some_type*)arr)+1; some_type *eltc = (char*)arr+sizeof(some_type); 我问这个的原因是因为我试图在C中做一个“容器”,如果这不成立,那么我就没有想法如何返回指向除第一个之外的任何其他元素的指针。

将格式化文件读入C中的char数组

我有一个非常简单的问题。 我需要将文件的内容读入C中的char数组。文件将始终格式化为两列字母,例如: AB BC EX CD 每个字母代表图形上的一个顶点,我将在稍后处理。 我已经学会了使用C ++和Java编程,但我并不特别熟悉C语言。 引起我无法弄清楚的问题的是文件多行多长的事实。 我需要每个字母占据数组中的一个插槽,所以在这种情况下它是: array[0] = ‘A’, array[1] = ‘B’, array[2] = ‘B’, array[3] = ‘C’等等。 最终我需要数组不包含重复项,但我可以稍后处理。 我在本学期早些时候编写了一个程序,它从一个文件中读取一行内容并且工作正常,因此我复制了大部分代码,但在这种情况下它不起作用。 这是我到目前为止所拥有的: #include #include int main (int argc, char *argv[]) { int i; int count = 0; char * vertexArray; char ch = ‘\0’; // open file FILE *file = fopen( […]

分配6xNxNarrays

我有一个变量N 我需要一个6xNxNarrays。 像这样的东西: int arr[6][N][N]; 但是,显然,这不起作用。 我不知道如何分配这个以便我可以访问,例如arr[5][4][4]如果N是5,而arr[5][23][23]如果N是24 。 请注意, N永远不会改变,所以我永远不必重新分配realloc arr 。 我该怎么办? 将int ***arr = malloc(6 * N * N * sizeof(int)); 工作?

将2D数组或指针返回到一个

如果在int 2DRepresentation[mapWidth][mapHeight];创建了一个二维数组int 2DRepresentation[mapWidth][mapHeight]; 在函数内部,返回此函数的最佳方法是什么? 函数如何返回? 是否首选创建指向2d数组的指针并将其传递给函数,在函数内修改它? 如果是这样,指向2D数组的指针看起来如何? 像这样: int *2DRepresentation[mapWidth][mapHeight]; ? 函数参数如何看起来接受2d数组指针?

从数组中输入几个数字,每个数字检查是否为整数

大家! 我希望有人可以帮助我找出C语言的东西。 这是我在IT方面的第一次认真的功课,我没有经验,而且我在电子学习中学习,所以老师的帮助不是很好。 我需要用C语言开发控制台应用程序。 用户需要输入10个整数,如果插入号不是整数,则需要输出错误并再次输入新的数字,直到插入所有10个整数。 如果我说这10个数字不能为0(我确保我的if-else语句正常工作),但是当我想要检查每个输入数字是否会检查时,一切都有效整数与否。 我怎么能做对 请帮忙 到目前为止我的代码看起来像这样: #include #include int main() { int i; float f; int numbers[10]; for (i = 0; i < 10; i++) { scanf ("%d", &numbers[i]); if (numbers[i] != 0) { scanf ("*%d", &numbers[i]); } else { printf ("\nError!Entered number is't integer \n"); printf ("\nPlease insert number again \n"); […]

期望’const char *’但参数在C中的类型为’char **’

我正在尝试编写一个搜索数组查找指定键的函数。参数n指定数组的有效大小,必须根据strcmp强加的字典顺序进行排序。如果找到键,则函数返回数组中出现该键的索引。因此,它可以返回子字符串的索引。但是,它出现了两个我无法解决的错误。请帮忙。 jiebin@jiebin-ThinkPad-Edge-E530:~/Program_C/programming_abstractions_in_c/FindStringInSortedArray$ gcc FindStringInSortedArray.c -o FindStringInSortedArray FindStringInSortedArray.c: In function ‘FindStringInSortedArray’: FindStringInSortedArray.c:7:3: warning: passing argument 1 of ‘strlen’ from incompatible pointer type [enabled by default] /usr/include/string.h:399:15: note: expected ‘const char *’ but argument is of type ‘char **’ jiebin@jiebin-ThinkPad-Edge-E530:~/Program_C/programming_abstractions_in_c/FindStringInSortedArray$ 这是我的代码: #include #include int FindStringInSortedArray(char *key,char *array[],int n) { int mid,cmp; int low=strlen(array)-n; int high=n; if(low > […]

memcpy缓冲区和数组不工作

我有一个要求,我需要将一个空数组作为参数传递给一个函数。 在这个被调用的函数中,我应该将一些数据memcpy到传递的数组中。 所以我写了一个与我的要求相同的小例子。 下面是它的代码: #include #include void printArr(int *a) { int i; int *b=(int*)malloc(sizeof(int)*10); printf(“\n\nEnter 10 lements:\n”); for(i=0;i<10;i++) scanf("%d",&b[i]); printf("\nContents of array b:\n"); for(i=0;i<10;i++) printf("%d\t",b[i]); printf("\n"); memcpy(a,b,10); printf("\nContents of array a:\n"); for(i=0;i<10;i++) printf("%d\t",a[i]); printf("\n"); } int main() { int a[10]; printArr(a); return 0; } 在上面的例子中,我将一个数组从main函数发送到printArr函数。 现在在被调用的函数中,数据将被存储到数组中。 当打印数组内容时,我得到一些垃圾值。 此外,编译还会发出警告,如下所示: $ gcc -o arr array.c array.c: In […]

我可以在scanf中使用指针来获取数组中的输入吗?

我想在c中这样做: scanf(“%d”,a+i); 其中a是大小为10的数组。 而i反对循环。 这可能吗?

传递包含C和C#之间结构数组的结构(DLL和P调用)

我有一个复杂的结构C dll我真的是C#的新手: typedef struct { int a; int b; } simple_struct; typedef struct { int d; int e; simple_struct f[20]; short g; simple_struct h[20]; short i; } complex_struct; 问题是我无法使用这种结构连接我的C#应用​​程序! 在DLL中有一个函数Ge​​tData(complex_struct * myStruct),我应该从C#中调用它,所以我创建了: [StructLayout(LayoutKind.Sequential, Pack = 1)] unsafe struct simple_struct { public int a; public int b; } ; [StructLayout(LayoutKind.Sequential, Pack = 1)] unsafe struct complex_struct […]