小编ggk*_*ath的帖子

初始化大型双数组的问题

来自新C程序员的愚蠢问题......我在以下代码中遇到了分段错误:

#include <stdio.h>
int main(void)
{
double YRaw[4000000]={0}; 
return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用GDB,我收到以下评论:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00007fff5dd7b148
0x0000000100000f24 in main () at talk2me.c:18
18 double YRaw[4000000]={0}; // set YRaw[memdepth] so index is 0 to memdepth-1
Run Code Online (Sandbox Code Playgroud)

如果我将YRaw阵列的大小减小10倍,那么一切都能找到.系统中有6GB的RAM,为什么我会收到错误?谢谢,Gkk

c arrays initialization

2
推荐指数
1
解决办法
1735
查看次数

单元格数组中的简单索引

我构建了一个简单的Matlab单元格数组:

d1 =
 1
 2
 3
 4
 5

d2 =
 2
 3
 4
 5
 6

d3 =
 3
 4
 5
 6
 7

d = 
[5x1 double]
[5x1 double]
[5x1 double]

clear d1 d2 d3;
Run Code Online (Sandbox Code Playgroud)

清除d1后,如何访问单元阵列d内的原始数组d1数据?如果我做:

>> d(1,:)
ans = 
[5x1 double]
Run Code Online (Sandbox Code Playgroud)

但我想要做的是发出这个命令:

d(what indexing goes here?) 
Run Code Online (Sandbox Code Playgroud)

并让它返回:

1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

matlab

1
推荐指数
1
解决办法
4701
查看次数

在Matlab绘图的for循环中创建一个图例

我想绘制几条曲线,每条曲线都有不同的长度.因此,我将每条曲线作为一个数组放在单元格索引Y中(这允许我在FOR循环内索引不同大小的数组).我使用下面的"全部保持"来启用FOR循环的每次迭代,以在同一图中的单元格数组Y中绘制每个新数组.

hold all;
for i = 1:1:length(maxusers)
  time = increment*(0:1:length(Y{i})-1);
  plot(time,Y{i,1,:});
end
Run Code Online (Sandbox Code Playgroud)

虽然在这里使用单元格数组确实简化了Y中各种曲线的绘制,但我遇到的问题是创建图例.目前我正在使用一个非常长/丑的switch语句来涵盖所有可能的场景,但我认为应该有一个更优雅的解决方案.

如果我有一个数组(例如maxusers = 4),那就是:

 filesize = [10 100 200 300];
Run Code Online (Sandbox Code Playgroud)

我知道有效的传说Matlab命令是:

legend(num2str(filesize(1)),num2str(filesize(2)),num2str(filesize(3)),num2str(filesize(4)));
Run Code Online (Sandbox Code Playgroud)

但是当曲线数量是maxusers给出的变量时,我试图创建一个图例命令.有任何想法吗?提前致谢.

arrays matlab

1
推荐指数
1
解决办法
2万
查看次数

javascript是使用自己的算法实现数学函数还是将它们外包给cpu/processor?

ActionScript3声明如下:

注意:数学函数acos,asin,atan,atan2,cos,exp,log,pow,sin和sqrt可能会导致略有不同的值,具体取决于CPU或操作系统使用的算法.Flash运行时调用CPU上所列出的功能执行计算时(或操作系统如果CPU不支持浮点计算),并且结果显示,这取决于所使用的CPU或操作系统的轻微变化.

我的Web应用程序适用于非常大和小的数字,我怀疑可能会看到差异取决于运行它的机器(特别是对于其处理器不如台式机那样强大的移动设备).我的问题是,这种行为是语言的一种功能吗?

也就是说,我认为有些语言实现他们自己的算法,为实现上述功能,因此可能会更加一致(除了通过将存在于所有语言处理器/ CPU的选择上引入舍入误差的差异).

任何人都知道Javascript是否拥有自己的算法,还是将它们外包给像ActionScript这样的CPU /处理器?

javascript actionscript-3

1
推荐指数
1
解决办法
151
查看次数

ANSI C程序错误:指针地址初始化正常,然后在if语句后更改为0x0

我在Linux CentOS 64位计算机上有一个ANSI C程序,包含以下行:

H1_real = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H1_imag = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H2_real = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H2_imag = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H3_real = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */
H3_imag = malloc(len_SPURFREQ_TIE * sizeof(double)); /* allocate memory */

if ( (H1_real == NULL) || (H1_imag == NULL) || (H2_real == NULL) || (H2_imag == NULL) || (H3_real == NULL) || …
Run Code Online (Sandbox Code Playgroud)

c

1
推荐指数
1
解决办法
172
查看次数

如何以编程方式在PL/SQL中设置表名?

我创建了以下简单的PL/SQL存储过程示例来询问特定问题.此过程将员工姓名和ID号插入到名为的表中employees_???.??? 解释如下.

PROCEDURE hire_employee (emp_id IN INTEGER, name IN VARCHAR2, country IN VARCHAR2) 
AS
BEGIN
    INSERT INTO employees_??? VALUES (emp_id, name, 1000);
END hire_employee;
Run Code Online (Sandbox Code Playgroud)

我需要的是根据IN变量设置表名country.例如,

如果country ='usa',我希望INSERT行读取:

INSERT INTO employees_usa VALUES (emp_id, name, 1000);
Run Code Online (Sandbox Code Playgroud)

如果country ='germany',我希望INSERT行读取:

INSERT INTO employees_germany VALUES (emp_id, name, 1000);
Run Code Online (Sandbox Code Playgroud)

如果country ='france',我希望INSERT行读取:

INSERT INTO employees_france VALUES (emp_id, name, 1000);
Run Code Online (Sandbox Code Playgroud)

等等...

有没有办法在PL/SQL中通过替换代替一些东西来执行此操作,employee_???因此只使用一行INSERT代码?或者使用caseif/then/else声明最好的方式?

oracle plsql

1
推荐指数
1
解决办法
9205
查看次数

C程序:如何使用循环解析csv字符串?

我正在使用带有-std=c89switch的Linux gcc编程C. 我有一个存储字符串的变量,例如:

10, 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

我在上面的字符串中显示了4个整数,但实际数字未提前知道.如何将这些值提取到整数数组中?我们可以使用例如8的上限来分配内存.但实际的整数数总是<= 8.

目前,我正在做以下事情:

sscanf(csv_variable, "%i,%i,%i,%i,%i,%i,%i,%i",
&int_variable[0],
&int_variable[1],
&int_variable[2],
&int_variable[3],
&int_variable[4],
&int_variable[5],
&int_variable[6],
&int_variable[7]);
Run Code Online (Sandbox Code Playgroud)

但这适用于具有8个整数的输入字符串.希望以某种方式在循环内完成解析,以便它可以容纳任何数字,例如,8个可能的整数(这样它适用于提供少于8个整数的情况).

c

1
推荐指数
1
解决办法
1449
查看次数

Custom Spark DataGrid中未定义的方法"sortByColumns"?

我正在使用一些自定义组件构建Flex应用程序,我认为这些组件正在搞乱.我正在尝试sortByColumn在火花数据网格中,使用此处答案作为模板.当我尝试在函数中使用以下内容时,

myGrid.sortByColumns(0,true);
Run Code Online (Sandbox Code Playgroud)

我收到错误:

1061: Call to a possibly undefined method sortByColumns through a 
reference with static type com.components:MyReportGrid.
Run Code Online (Sandbox Code Playgroud)

有谁知道如何删除此错误?被MyReportGrid莫名其妙地掩盖了Spark组件的正确位置?当使用其他一些函数时,我也会得到"未定义的方法"错误,例如invalidateCell(),不确定它是否与此错误有关.

我的数据网格如下:

...
<components:MyReportGrid id="myGrid" dataProvider="{_myData}"...>
    <components:columns>
        <fx:Array>
            <supportClasses:MyColumn ... />
            <supportClasses:MyColumn ... />
            <supportClasses:MyColumn ... />
            ...
Run Code Online (Sandbox Code Playgroud)

其中MyColumn是一个类,如下所示:

import spark.components.gridClasses.GridColumn;
public class MyColumn extends GridColumn
{
    ...
    public function MyColumn(headerText:String="header" width:Number=100 ...)
    {
       this.headerText=headerText;
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)

和MyReportGrid是:

<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"    
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx"
         width="400" height="300">
   import com.components.myClasses.MyColumn;
   import com.itemRenderers.myItemRenderer;
   import mx.collections.ArrayCollection; …
Run Code Online (Sandbox Code Playgroud)

apache-flex actionscript actionscript-3 flex4

1
推荐指数
1
解决办法
555
查看次数

新手尝试使用Java ArrayList存储从数据库获取的ResultSet

我有一个数据库服务器使用JDBC与Java应用程序服务器通信.我想将数据库ResultSet中的数据存储到Java变量中.

这是我的Java课程,HRPeople:

public class HRPeople {
    public int elements;
    public String[] FirstName;
    public String[] LastName;
    public String[] Email;
    public int[] Salary;
}
Run Code Online (Sandbox Code Playgroud)

我目前使用此类来存储ResultSet中的数据,如下所示:

query = "SELECT first_name, last_name, email, salary FROM HR.Employees where rownum < 6";
rset = stmt.executeQuery(query);
while (rset.next()) {
    returnHRdata.FirstName[ii] = rset.getString("first_name");
    returnHRdata.LastName[ii]  = rset.getString("last_name");
    returnHRdata.Email[ii]     = rset.getString("email");
    returnHRdata.Salary[ii]    = rset.getInt("salary");
    ii = ii + 1;
}
Run Code Online (Sandbox Code Playgroud)

上述场景的问题是原始数组要求我知道ResultSet中的行数,以便我可以正确初始化这些数组.所以我想要做的是使用ArrayList.如何修改上述方案来执行此操作?

这是我最初的尝试(这是否接近)?上面显示的HRPeople.java文件是否在此方案中使用?

query = "SELECT first_name, last_name, email, salary FROM HR.Employees where rownum < 6";
rset = stmt.executeQuery(query);
List<HRPeople> returnHRdata …
Run Code Online (Sandbox Code Playgroud)

java arraylist

0
推荐指数
1
解决办法
8410
查看次数