我正在使用GWT,Java和EclipseLink开发Web应用程序.这些选择中的每一个都是我为实现该程序而做出的选择.GWT是唯一没有牢牢把握它与Spring之类的东西相比的选择.现在我使用GWT小部件来实现客户端和GWT RequestFactory来实现EclipseLink中实体的服务器 - 客户端通信.
所以我认为GWT主要是一个小部件库,它有一个简单的服务器 - 客户端通信框架.这与我查看Spring的方式大致相同,Spring是一个小部件库,具有更高级和更复杂的框架,用于控制服务器 - 客户端通信 - 有可能它不像GWT那样方便地实现AJAX.
因此,考虑到这些,我认为GWT是理解并最终与Spring合作的垫脚石.但是,谷歌,荷兰国际集团再次对这个话题,我已经遇到几个主题这样一个那一个,似乎违背原来的概念是什么春天是,和这意味着什么了GWT.
注意:我已经查看了其他分段故障发布,与我的问题密切相关的是当在堆栈上创建大型数组最终导致溢出时.但是,正如您从下面的代码中看到的那样,我正在堆上分配并仍然遇到此问题.
我已经使用Valgrind和gdb来调试它,它们告诉我以下内容:在下面的功能代码中出现"无效读取大小4 ... numberDivisors"或分段错误.奇怪的是,这可以适用于所有数字,最多可达49141,因为它会引发错误或段错误. 这只是在循环中. 当我在没有循环的情况下放入一个大数字时,它将报告除数的数量而不会出错或断错.任何人都可以看到下面的代码中的问题是什么?谢谢!
int numberDivisors(int n) {
int lim = (int)floor(sqrt((double)n));
int *primes = (int*)calloc(n, sizeof(int));
int *divisors = (int*)calloc(n, sizeof(int));
int i, j, ctr;
ctr = 0;
if(primes && divisors) {
for(i = 0; i < n; i++) {
primes[i] = 1;
divisors[i] = 0;
}
for(i = 2; i < lim; i++) {
if(primes[i]) {
for(j = i; i * j < n; j++) {
primes[i * j] = 0;
}
}
}
for(i …Run Code Online (Sandbox Code Playgroud)