Tag: 数组

我有一个分段错误,但我没有找到oO?

它应该与合并排序。 合并和排序合并有两个function。 一些未知的函数(从文件和打印数组中读取数组)在输入文件中完全起作用。 Valgrind向我展示了失败是在array2的分配以及它在void合并的第3个while循环中的读写时。 void merge(int* array, int start, int middle, int end) { int size = end – start + 1; int *array2 = malloc(size*sizeof(array2)); int k = start; int m = middle + 1; int i = 0; int j = 0; while ( k <= middle && m <= end ) { […]

最长增加子序列中的荒谬条件

/* A Naive recursive implementation of LIS problem */ #include #include /* To make use of recursive calls, this function must return two things: 1) Length of LIS ending with element arr[n-1]. We use max_ending_here for this purpose 2) Overall maximum as the LIS may end with an element before arr[n-1] max_ref is used this […]

我可以先声明一个数组并在以后给出它的值吗?

我试过这样做但是出错了。 为什么我不能这样做? int main() { char sweet[5]; sweet = “kova”; printf(“My favorite sweet is %s\n”, sweet); return 0; }

无法在C中查找数组的长度?

可能重复: c动态内存分配和sizeof() 我试图通过保持一个16 MiB的巨大块并通过尝试每次访问不同的元素来找到时间来找到缓存块。 我只是无法写出数组的长度。 如何编写for循环来迭代数组。 我需要数组的长度; 我该怎么找到? 我已经尝试过sizeof(a)/sizeof(a[0])但是这不起作用或者我做错了,因为我的作业表告诉我它可以容纳400万个int .. register *a; a = malloc(16777216); int i; for (i = 0; i < sizeof(a)/sizeof(a[0]); i = i + 1) { printf("\ni = %d", i); } 这仅打印i = 0 i = 1。

c / c ++指向数组的指针vs指向指针的指针

我认为数组和指针基本上是一回事,直到我运行这个程序: int main() { int* a = new int(19); int b[1]; b[0] = 19; printf(“*a: %d\na: %p\n &a:%p\n”, *a, a, &a); printf(“*b: %d\nb: %p\n &b:%p\n”, *b, b, &b); delete a; } 输出是: *a: 19 a: 0x7f94524000e0 &a:0x7fff51b71ab8 *b: 19 b: 0x7fff51b71ab4 &b:0x7fff51b71ab4 有人可以解释为什么&b的输出与b相同? 谢谢! -Erben

C struct数组赋值问题

我是C的新手,我正在使用struct数组。 我无法为其分配值。 这是我的结构.. struct student{ char firstname[30]; char surname[30]; int streetNo; char streetName[30]; char suburb[30]; char state[4]; int postCode; char DOB[10]; int studentNo; char gender; char courseNo[4]; char active; int WAM; }; struct student person[1000]; 这是我为结构赋值 person[100].firstname = “dan”; 这是我的错误 assignment type mismatch: array[30] of char “=” pointer to char

(gcc)用于无警告编译的多点arrays或双指针

我有一个函数,有时会调用常规的,有时是动态的数组。 如果我将函数定义为 function_name(int[10][10] a) 并发送int **作为参数,我得到一个警告。 相反,如果我宣布 function_name(int** a) 并发送int [] []作为参数(在转换后)我无法访问函数内部的数组元素。 最正确的方法是什么?

使用备用最小值和最大值对数组进行排序

给定一个数组,我被要求以某种方式对其进行排序,以便最小值首先是最大值第二,第二个最小值第三,依此类推。 但是,当我输入值时,我没有得到所需的输出。 我今天参加考试,对此表示赞赏。 #include int main() { int i,j,k,a[6],temp,min; for(i=0;i<6;i++) scanf("%d",&a[i]); for(j=0;j<6;j++) { if(j%2==0) { min=a[j]; for(k=j;k<6;k++) { if(a[k++]<min) min=a[k++]; } temp=a[j]; a[j]=min; min=temp; } else { min=a[j]; for(k=j;kmin) min=a[k++]; } temp=a[j]; a[j]=min; min=temp; } printf(“%d “,a[j]); } }

在结构中使用另一个值的值设置一个数组的大小,在C中

struct { uint16 msg_length; uint8 msg_type; ProtocolVersion version; uint16 cipher_spec_length; uint16 session_id_length; uint16 challenge_length; V2CipherSpec cipher_specs[V2ClientHello.cipher_spec_length]; opaque session_id[V2ClientHello.session_id_length]; opaque challenge[V2ClientHello.challenge_length; } V2ClientHello; 是否可以做类似上面的事情( http://tools.ietf.org/html/rfc5246 )? 如果是这样,我如何在C内编码呢? 更具体地说,结构中的这一行: V2CipherSpec cipher_specs [V2ClientHello.cipher_spec_length]; 用途: V2ClientHello.cipher_spec_length 这是在同一个结构中定义的,用于设置数组的长度。

C用数学函数初始化三维数组?

我正在考试过去考试的第一年计算机科学课程,我对一个问题感到困惑。 我不知道它在问什么。 我不是要求某人为我做这件事,但如果有人能帮我理解问题要我做什么,我将不胜感激。 编写一个完整的C程序,根据下面的规范分配,初始化,打印和解除分配int类型变量的三维数组。 三个arrays尺寸x,y和z的尺寸分别为3个,2个和4个。 应根据以下函数初始化数组元素 f(x,y,z)= 5x + 6y + 7z 这意味着您的初始化代码将如下所示: myArray [x] [y] [z] = 5 * x + 6 * y + 7 * z; 以下是一些示例输出: 0 7 14 21 6 13 20 27 5 12 19 26 11 18 25 32 10 17 24 31 16 23 30 37 首先,我不明白问题是什么。 […]