启动新线程时抛出IndexOutOfRangeException
当我运行以下代码件时,会抛出indexoutofrangeException.看来我是2个例外时.我的理解是,在更改I值之后,新线程就开始了.有没有办法使该代码免受这种问题的安全? int x[2] = {1, 3}; int numberOfThreads = 2; for (int i = 0; i { DoWork(x[i]); }).Start(); } 解决方案 问题是正在捕获变量 i,到线程实际开始时,它是2. 而是使用此: for (int i = 0; i DoWork(value)).Start(); } 或: foreach (int value in x) { i
2 2024-04-25
编程技术问答社区
c# 当使用 "array[x].contains(array2[y]) "时,不断得到索引超出范围的信息
我已经把头敲了一段时间了.运行此代码时,我一直从范围中获得索引. 基本上,我取了一个文本框,将其分为数组,然后使用数组的每个索引与装满字符串的数组进行比较.粘贴相关代码,你们能看到我做错了什么吗? 我设定的错误点附近的错误点. ( public partial class MainWindow : Window { string[] kbsubject = new string[4000]; string[] kbbody = new string[4000]; string[] wordsplit = new string[4000]; int[] hits = new int[4000]; StreamWriter WriteBody = new StreamWriter("kbsubjecttest.txt"); StreamReader readSubject = new StreamReader("kbsubje
4 2024-04-24
编程技术问答社区
在试图启动多个线程时,索引超出了阵列的范围
我有这个代码,它给了我"索引不在数组的界限之外".我不知道为什么会发生这种情况,因为变量i应该始终小于数组的长度bla,因此不会导致此错误. private void buttonDoSomething_Click(object sender, EventArgs e) { List t = new List(); string[] bla = textBoxBla.Lines; for (int i = 0; i some_thread_funmction(bla[i]))); t[i].Start(); } } 有人可以告诉我如何解决这个问题,为什么会发生这种情况.谢谢! 解决方案 关闭在这里是您的问题. 基本上,当您创建lambda(在循环中)时,它不是在需要时抓
2 2024-04-22
编程技术问答社区
填充一个数组以避免索引超出数组范围的错误的方法
我希望在询问列表时至少有183个项目,但是有时我的提取物结果的结果计数低于183.我的当前修复程序据称是在计数小于计数的情况下将数组填充183. if (extractArray.Count() itemsList = extractArray.ToList(); itemsList.AddRange(tempArr); var values = itemsList.ToArray(); //-- Process the new array that is now at least 183 in length } ,但似乎我的解决方案不是最好的.我将感谢任何其他解决方案,这些解决方案可以帮助确保每当提取物发生时至少
2 2024-04-19
编程技术问答社区
索引超出了数组的范围 c#
我有一个带有size[5]的数组.我在此数组中添加了5个值,然后删除了值.现在我的数组只有一个值.如果我在此数组中添加另一个值,则显示错误 Index was outside the bounds of the array. 解决方案 如果您的数组的尺寸为5,则可以添加值0到4(数组在索引0开始): object[] arr = new object[5]; arr[0] = new object(); arr[4] = new object(); // this will give your Index was outside the bounds of the array exception: arr[5] = new object();
4 2024-04-17
编程技术问答社区
创建带参数的新线程时,索引超出范围?
我正在研究有关面包店算法的项目,但是我在C#中没有任何该算法的演示.由于这种情况,我转换了一些在Wikipedia上发现的Java代码.但是无论如何,它似乎不起作用! 更新:这是我的完整代码(旧代码包括在"//"评论中) namespace BakeryAlgorithm { class Program { static int threads = 10; static string x = ""; static int count = 0; static int[] ticket = new int[threads]; static bool[] entering = new bool[threads]; public static void doLock(int pid) { entering[pid] = t
0 2024-04-14
编程技术问答社区
创建任务时列表索引超出范围的异常
确切的错误: 索引超出范围.必须是非负的,并且小于收集的大小. 我已经索引阵列,列出了无数次.我用于循环,数组和列表无数次.数据在那里,它起作用.除非我尝试为我的功能创建任务.请注意,我成功地使用了一个foreach循环来实现类似功能.这个新的需要两个参数,因此我不能正确使用foreach循环.至少我认为我不能. 这是错误的代码: if (addressList != null) { textBox1.Text += ("Address List Length: " + addressList.Count + Environment.NewLine); for (int i = 0; i
4 2024-04-12
编程技术问答社区
分段故障在访问超出边界的内存后不会立即出现
我写了这件代码,并期待分段故障,但似乎我可以访问我不应该做的记忆部分. #include int main() { int tab[1]; tab[0]=42; int i; //Expecting Seg Fault from i==1... for(i=0;;i++) { printf("%d \t %d \n", i, tab[i]); } return 0; } 我正在使用: 编译 gcc -Wall -Wextra my_code.c -o segfault && ./segfault 执行后,变量i在我获得分割故障之前达到订单1000的值. 我的问题是:为什么我能够阅读tab ps:使用#include 和声明int * tab = (int*)malloc(sizeof(int));不会改变任何东西... 谢谢. 解
2 2024-04-07
编程技术问答社区
没有出界的错误
我在C中具有此代码,该代码占用了一堆char s #include # define NEWLINE '\n' int main() { char c; char str[6]; int i = 0; while( ((c = getchar()) != NEWLINE)) { str[i] = c; ++i; printf("%d\n", i); } return 0; } 输入为:testTestStest 输出: 1 2 3 4 5 6 7 8 117 118 119 120 我的问题是: 尽管我显然超出了数组的能力,但为什么不限制界限(分段故障)例外? 为什么输出中的数字突然跳到很大的数字? 我在C ++中尝试了此操作,并获得了相同的行为.谁能解释一下这样做的原因是什么? 解决方案 C不检查数组边界.仅当您尝试将程序没有权限访问的内存指针放置指针时,才会发生分割
0 2024-04-05
编程技术问答社区
Android Studio 1.5.1 Gradle错误 :app:mergeDebugResources FAILED
一切都很好,我什么也没改变,现在我有这个错误(请参阅Gradle Console).我有Android Studio 1.5.1.我试图清洁,重建项目,但这无济于事.请帮我.这是我的build.gradle: // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:1.5.0+' // NOTE: Do not place your application dependencies here; they belong // in the individua
Hibernate中错误的布尔映射(ArrayIndexOutOfBoundsException)。
我有一个持久的书类,带有以下属性 PropertyName-> HibernatemappingType-> Javatype id->长 - >长 标题 - >文本 - >字符串 作者 - >字符串 - >字符串 systemid->长 - >长 状态 - >布尔值 - >布尔值 full classification->字符串 - >字符串 和我的表格描述看起来像这样: 到目前为止,一切似乎都不错,但是当我尝试获取表中的所有值时,我会收到以下异常消息: 20:04:43,832 TRACE BasicExtractor:61 - extracted value ([classifi1_1_0_] : [BIGINT]) - [11] 20:04:43,832 TRACE BasicExtractor:61 - extracted value ([collecti1_2_1_] : [BIGINT]) - [11] 20:04:43,833 T
8 2024-04-01
编程技术问答社区
SimpleCursorAdapter中的图像
我正在尝试将SimpleCursorAdapter与ViewBinder一起使用,以从数据库中获取图像,并将其放入我的ListView项目视图中.这是我的代码: private void setUpViews() { mNewsView = (ListView) findViewById(R.id.news_list); Cursor cursor = getNews(); SimpleCursorAdapter curAdapter = new SimpleCursorAdapter( getApplicationContext(), R.layout.cursor_item, cursor, new String[] { "title", "content", "image" }, new int[] { R.id.cursor_title, R.id.cursor_content
binarySearch方法产生 "ArrayIndexOutOfBounds "异常
当我提供一个不在数组中的字母的键时,我想知道为什么这种方法给我一个ArrayIndexOutOfBounds例外.如果键是字母以外的其他内容,似乎没有问题. public class BinarySearch2 { public static void main(String[] args) { String[] array = {"A", "B", "C", "D", "E", "F", "G", "H", "I", "J"}; String key = "K"; String found = binarySearch(array, key); System.out.println(found); } public static String binarySearch(String[] array, String key) { int low = 0; in
0 2024-03-30
编程技术问答社区
notifyDataSetChanged()-IndexOutOfBoundException
我不明白什么是错误的 我正在使用 public class UrlArrayAdapter extends BaseAdapter {... ArrayList objects; UrlArrayAdapter(Context context, ListView urlListView, ArrayList urlLists) { objects = urlLists; ... //method public void deleteItem(int numberToDelete) { objects.remove(numberToDelete); notifyDataSetChanged(); } 和(最有趣的) 我得到numberT
6 2024-03-27
编程技术问答社区
处理中的OutOfBoundsException(声音库)。
我最近开始玩处理.我想创建一个简单的FFT可视化器,该可视化器将使用声音库导入音乐文件.这是我的代码和控制台输出. 在 import processing.sound.*; SoundFile file; void setup() { size(); background(51); file = new SoundFile(this, "song.mp3"); file.play(); } void draw () { } 有人可以解释为什么会发生这种情况以及如何修复? 顺便说一句,声音文件(song.mp3)位于与.pde文件的同一文件夹中. 解决方案 将mp3文件放入一个名为数据的文件夹中,该文件应位于.pde文件的位置. 这可能无法解决您的问题.如果问题持续存在,那是声音库的错,您目前无能为力. 我听说有人推荐"最小"图书馆.尝试研究这一点,因为继续使用声音库只会导致问题. 其他解决方案 我尝试加载单声道M
6 2024-03-19
编程技术问答社区
java.lang.ArrayIndexOutOfBoundsException当添加新元素到一个数组时?
我有以下Java类,将一个人对象添加到现有人Array: public class PersonService{ protected int lastItemInPersonArray = 0; private Person[] persons = new Person[100]; public void addPersonToPersonArray(Person personToAdd){ persons[lastItemInPersonArray++] = personToAdd; } } 我可以在这里正确添加1个对象,但是当我尝试2时,我会收到以下错误: java.lang.ArrayIndexOutOfBoundsException: 1 我的逻辑是什么不正确的? 解决方案 这对我有用. public class PersonService { protected int lastItemIn
4 2024-03-07
编程技术问答社区
当我访问一个数组中的界外元素时,为什么我没有得到一个运行时错误?
在下面的此代码中,我尝试访问数组的' - 1'THENTEM,我没有任何运行时错误. #include int A[10] = {0}; int main(){ A[-1] += 12; printf("%d",A[-1]); return 0; } 当我运行代码时,它会输出12这意味着它正在向不存在的A [-1]添加12个.直到今天,每当我试图访问越野元素时,我都会有一个运行时间.我以前从未尝试过简单的代码. 谁能解释为什么我的代码成功运行? 我在我的计算机上运行了它,也可以在 indeone 中,在这两种情况下成功运行. 解决方案 您看到,当您分配这样的变量时,它会降落在堆栈上.堆栈中包含有关您调用的每个函数中局部变量的少量信息,以简单的话说.运行时能够检查是否超过分配堆栈的边界,但如果您在堆栈上的无效位置中写入一些数据.堆栈看起来如下: [4个字节 - 一些ptr] [4个字节 - A的第一个
0 2024-03-07
编程技术问答社区
使用Array-ArrayIndexOutOfBoundsException实现的缓存(Java)
我模拟了Web缓存替换算法.我有n个类型请求的对象可用于缓存和L请求,该对象以串行方式到达缓存的对象. 请求对象通过其int field reqid(从0到n-1的数字ID)区分.我已经覆盖等于比较请求对象. 我使用数组实现缓存 - 简单,普通的静态数组. 缓存中充满了类型请求的对象,并具有最大大小m: /** Max cache size */ private int M; /** Cache */ private Request[] cache = new Request[M]; 我在缓存中有插入,驱逐和替换对象. 我还具有最后一个k请求的滑动窗口,该窗口已实现为arraydeque: /** Max window size */ private int K; /** Window */ private Deque window = new ArrayDeque(K); 值m和k在构造函数上初始化并设
8 2024-03-06
编程技术问答社区
numpy中是否有动态数组?
假设我创建了2个Numpy阵列,其中一个是一个空数组,一个由零组成的1000x1000尺寸为1000x1000: import numpy as np; A1 = np.array([]) A2 = np.zeros([1000,1000]) 当我想更改A2中的值时,这似乎可以正常工作: A2[n,m] = 17 上述代码将在A2中更改位置[N] [M]的值. 当我使用A1尝试以上问题时,我会收到此错误: A1[n,m] = 17 indexError:索引n在尺寸0 的轴0范围内 我知道为什么会发生这种情况,因为A1中没有定义的位置[n,m],这很有意义,但是我的问题如下: 如果在n或m或两者中输入A[n,m] = somevalue,则有没有一种方法可以定义动态数组,而没有新的行和列更新数组. 它不必在numpy中,任何可以更新数组大小的库或方法都很棒.如果是一种方法,我可以想象有一个IF循环检查[n] [m]是否超出范围并且对此做些事
0 2024-03-06
编程技术问答社区
为什么JavaScript对这个代码样本没有抛出一个异常?
我希望人们能原谅我一个相当基本的JavaScript问题(对我来说,这通常不是"主要"语言).我正在看W3Schools的JavaScript教程以进行审核;他们的 警告:添加带有高索引的元素可以在数组中创建未定义的"孔": var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits[6] = "Lemon"; // adds a new element (Lemon) to fruits 这将导致包含undefined的索引4和5. 此外,我可以做一些alert(fruits[20]);(给我一个弹出式弹出式"未定义")之类的事情. 在大多数更严格地打字的语言中,尝试执行任何一种操作都会导致运行时例外.我确实意识到我们这里没有一个人在JavaScript设计委员会(据我所知),但是有人知道为什么允许这些(即为什么他们不丢下运行时例外或类似的东西)? 我可以理解做fruits[4] = "Lemon
2 2024-03-06
编程技术问答社区