- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有这个代码:
int main(){
char vector[52];
char i;
/* initialize the vector */
for (i ='a'; i < 'z'; i++){
vector[i] = i - 'a' + 1;
}
// vector is like vector['a'] = 1, vector['b'] = 2 .. vector['z'] = 26
for (i ='A'; i <= 'Z'; i++){
vector[i] = i - 'A' + 27;
}
// vector is like vector['A'] = 27, vector['B'] = 28 .. vector['z'] = 52
for (i ='a'; i <= 'z'; i++){
printf("letter %c : %d \n", i, vector[i]);
}
for (i ='A'; i <= 'Z'; i++){
printf("letter %c : %d \n", i, vector[i]);
}
return 0;
}
输出:
letter a : 1
letter b : 2
letter c : 3
letter d : 4
letter e : 5
letter f : 6
letter g : 7
letter h : 8
letter i : 9
letter j : 10
letter k : 11
letter l : 12
letter m : 13
letter n : 14
letter o : 15
letter p : 16
letter q : 17
letter r : 18
letter s : 19
letter t : 20
letter u : 21
letter v : 22
letter w : 23
letter x : 24
letter y : 25
letter z : 0
letter A : 27
letter B : 28
letter C : 29
letter D : 30
letter E : 31
letter F : 32
letter G : 33
letter H : 34
letter I : 35
letter J : 36
letter K : 37
letter L : 38
letter M : 39
letter N : 40
letter O : 41
letter P : 42
letter Q : 43
letter R : 44
letter S : 45
letter T : 46
letter U : 47
letter V : 48
letter W : 49
letter X : 50
letter Y : 51
letter Z : 52
*** stack smashing detected ***: ./a.out terminated
======= Backtrace: =========
/lib/i386-linux-gnu/libc.so.6(__fortify_fail+0x50)[0xc25df0]
/lib/i386-linux-gnu/libc.so.6(+0xe5d9a)[0xc25d9a]
./a.out[0x8048547]
[0x343332]
======= Memory map: ========
00110000-0012a000 r-xp 00000000 08:01 131939 /lib/i386-linux-gnu/libgcc_s.so.1
0012a000-0012b000 r--p 00019000 08:01 131939 /lib/i386-linux-gnu/libgcc_s.so.1
0012b000-0012c000 rw-p 0001a000 08:01 131939 /lib/i386-linux-gnu/libgcc_s.so.1
00a19000-00a1a000 r-xp 00000000 00:00 0 [vdso]
00aa4000-00ac0000 r-xp 00000000 08:01 131898 /lib/i386-linux-gnu/ld-2.13.so
00ac0000-00ac1000 r--p 0001b000 08:01 131898 /lib/i386-linux-gnu/ld-2.13.so
00ac1000-00ac2000 rw-p 0001c000 08:01 131898 /lib/i386-linux-gnu/ld-2.13.so
00b40000-00c9a000 r-xp 00000000 08:01 131911 /lib/i386-linux-gnu/libc-2.13.so
00c9a000-00c9b000 ---p 0015a000 08:01 131911 /lib/i386-linux-gnu/libc-2.13.so
00c9b000-00c9d000 r--p 0015a000 08:01 131911 /lib/i386-linux-gnu/libc-2.13.so
00c9d000-00c9e000 rw-p 0015c000 08:01 131911 /lib/i386-linux-gnu/libc-2.13.so
00c9e000-00ca1000 rw-p 00000000 00:00 0
08048000-08049000 r-xp 00000000 08:01 40062 /home/valter/Documents/Complexidade/recursivo/a.out
08049000-0804a000 r--p 00000000 08:01 40062 /home/valter/Documents/Complexidade/recursivo/a.out
0804a000-0804b000 rw-p 00001000 08:01 40062 /home/valter/Documents/Complexidade/recursivo/a.out
0846f000-08490000 rw-p 00000000 00:00 0 [heap]
b7772000-b7773000 rw-p 00000000 00:00 0
b7782000-b7785000 rw-p 00000000 00:00 0
bfa50000-bfa71000 rw-p 00000000 00:00 0 [stack]
Aborted
我不明白为什么会出现此错误消息。我应该有一个像这样的 vector :
vector['a'] = 0, vector['b'] = 1, .., vector['z'] = 26, vector['A'] = 27, vector['B'] = 28, .., vector['Z'] = 52
我知道我有这个 vector ,但错误随之而来。如何解决这个问题?
最佳答案
因为 'Z' 不等于 'z'。
'Z' 等于 90,而您的 vector 只有 52 个元素。您的最高指数是 51,所以您基本上已经越界了!
比如当你这样做的时候
for (i ='A'; i <= 'Z'; i++)
{
vector[i] = i - 'A' + 27;
}
这是您的第一次迭代的样子:
vector[65] = 65 - 65 + 27; // <-- Wrong index !
关于c++ - 在 C 中使用 char 作为数组索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719187/
我正在尝试创建一个包含 int[][] 项的数组 即 int version0Indexes[][4] = { {1,2,3,4}, {5,6,7,8} }; int version1Indexes[
我有一个整数数组: private int array[]; 如果我还有一个名为 add 的方法,那么以下有什么区别: public void add(int value) { array[va
当您尝试在 JavaScript 中将一个数组添加到另一个数组时,它会将其转换为一个字符串。通常,当以另一种语言执行此操作时,列表会合并。 JavaScript [1, 2] + [3, 4] = "
根据我正在阅读的教程,如果您想创建一个包含 5 列和 3 行的表格来表示这样的数据... 45 4 34 99 56 3 23 99 43 2 1 1 0 43 67 ...它说你可以使用下
我通常使用 python 编写脚本/程序,但最近开始使用 JavaScript 进行编程,并且在使用数组时遇到了一些问题。 在 python 中,当我创建一个数组并使用 for x in y 时,我得
我有一个这样的数组: temp = [ 'data1', ['data1_a','data1_b'], ['data2_a','data2_b','data2_c'] ]; // 我想使用 toStr
rent_property (table name) id fullName propertyName 1 A House Name1 2 B
这个问题在这里已经有了答案: 关闭13年前。 Possible Duplicate: In C arrays why is this true? a[5] == 5[a] array[index] 和
使用 Excel 2013。经过多年的寻找和适应,我的第一篇文章。 我正在尝试将当前 App 用户(即“John Smith”)与他的电子邮件地址“jsmith@work.com”进行匹配。 使用两个
当仅在一个边距上操作时,apply 似乎不会重新组装 3D 数组。考虑: arr 1),但对我来说仍然很奇怪,如果一个函数返回一个具有尺寸的对象,那么它们基本上会被忽略。 最佳答案 这是一个不太理
我有一个包含 GPS 坐标的 MySQL 数据库。这是我检索坐标的部分 PHP 代码; $sql = "SELECT lat, lon FROM gps_data"; $stmt=$db->query
我需要找到一种方法来执行这个操作,我有一个形状数组 [批量大小, 150, 1] 代表 batch_size 整数序列,每个序列有 150 个元素长,但在每个序列中都有很多添加的零,以使所有序列具有相
我必须通过 url 中的 json 获取文本。 层次结构如下: 对象>数组>对象>数组>对象。 我想用这段代码获取文本。但是我收到错误 :org.json.JSONException: No valu
enter code here- (void)viewDidLoad { NSMutableArray *imageViewArray= [[NSMutableArray alloc] init];
知道如何对二维字符串数组执行修剪操作,例如使用 Java 流 API 进行 3x3 并将其收集回相同维度的 3x3 数组? 重点是避免使用显式的 for 循环。 当前的解决方案只是简单地执行一个 fo
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
我有来自 ASP.NET Web 服务的以下 XML 输出: 1710 1711 1712 1713
如果我有一个对象todo作为您状态的一部分,并且该对象包含数组列表,则列表内部有对象,在这些对象内部还有另一个数组listItems。如何更新数组 listItems 中 id 为“poi098”的对
我想将最大长度为 8 的 bool 数组打包成一个字节,通过网络发送它,然后将其解压回 bool 数组。已经在这里尝试了一些解决方案,但没有用。我正在使用单声道。 我制作了 BitArray,然后尝试
我们的数据库中有这个字段指示一周中的每一天的真/假标志,如下所示:'1111110' 我需要将此值转换为 boolean 数组。 为此,我编写了以下代码: char[] freqs = weekday
我是一名优秀的程序员,十分优秀!