相关疑难解决方法(0)

我是否施放了malloc的结果?

这个问题,有人建议意见,我应该不会投的结果malloc,即

int *sieve = malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

而不是:

int *sieve = (int *) malloc(sizeof(int) * length);
Run Code Online (Sandbox Code Playgroud)

为什么会这样呢?

c malloc casting

2318
推荐指数
27
解决办法
22万
查看次数

C++中是否存在最大数组长度限制?

C++中的数组是否有最大长度?

它是C++限制还是取决于我的机器?它可以调整吗?它取决于数组的类型吗?

我可以以某种方式突破该限制,还是必须寻找更好的信息存储方式?什么应该是最简单的方法?

我要做的是在数组上存储long long int,我在Linux环境中工作.我的问题是:如果我需要存储N> 10位数的N长整数数组,我该怎么办?

我需要这个,因为我正在为学校编写一些加密算法(例如p-Pollard),然后点击这个整数墙和数组表示的长度.

c++ arrays

163
推荐指数
4
解决办法
24万
查看次数

大数组大小的分段错误

以下代码在2Gb机器上运行时给出了分段错误,但在4GB机器上运行.

int main()
{
   int c[1000000];
   cout << "done\n";
   return 0;
}
Run Code Online (Sandbox Code Playgroud)

阵列的大小只有4Mb.可以在c ++中使用的数组大小是否有限制?

c++ arrays segmentation-fault

103
推荐指数
3
解决办法
9万
查看次数

如何发生"堆栈溢出",如何防止它?

如何发生堆栈溢出以及确保它不会发生的最佳方法是什么,或者是哪种方法可以防止,特别是在Web服务器上,但其他示例也会很有趣?

memory stack-overflow

84
推荐指数
8
解决办法
8万
查看次数

尝试声明一个大数组时,分段错误和核心转储

在我的C程序中,当我尝试分配此数组值时:

double sample[200000][2];
Run Code Online (Sandbox Code Playgroud)

我收到了分段错误错误.但是当我使用时:

double sample[20000][2]
Run Code Online (Sandbox Code Playgroud)

有用!!这些指数值是否有限制?

c arrays

5
推荐指数
2
解决办法
3547
查看次数

有没有办法获得堆上可用的内存地址范围?

在我看来,这就是内存在C ++中的工作方式:

如果使用,new则要求编译器的实现从堆中提供一些内存(任何内存)。

如果您使用placement new语法,则您将要求重新分配一个特定的内存位置,该地址您已经知道该地址(假设它也是来自堆),该地址最初也是new在某个时候从操作员分配的。

我的问题是这样的:

无论如何,是否有先验知道程序可以使用哪些内存的位置(即,无需从new操作员已经分配给您的堆中重新分配内存)?

堆中的内存是否连续?如果是这样,您能找出它的起点和终点吗?

ps只是试图尽可能快地接近金属...

c++ memory new-operator

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

C中的大型2D阵列 - Stack OverFlow错误

我很久没有使用过C了,而且我在用CSV填充2D数组时遇到了问题.文件格式如下:

节点,输入,输出

1,200,10393

...

这实际上是链表的数组表示.有150000个元素,每当我尝试填充数组时,我得到一个错误,说"在main.exe中0x000000013facb957处未处理的异常:0xC00000FD:堆栈溢出." 我在64位机器上使用16GB RAM,而我正在使用带有x64构建配置的VS C++ 2010 Express.

int main(int argc, char *argv[])
{

int counter = 0;
char line [ 1024 ];
int map[150000][2] = {0};
char *comma = ",";
char *token;
int index;
int in, out;
char* end;
int nodeID;
FILE *fp;

fp = fopen("mapsorted.txt","r"); // read mode

if( fp == NULL )
{
  perror("Error while opening the file.\n");
  exit(EXIT_FAILURE);
}

//Skip header line
fgets ( line, sizeof line, fp );

while ( fgets ( line, …
Run Code Online (Sandbox Code Playgroud)

c stack-overflow arrays

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

C中的sizeof(数组):分段错误

嗨,我从这段代码得到一个奇怪的分段错误:

int main(void){

  int array1[10000000];

  int n = sizeof(array1);

  printf("%d \n", n );

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我改变

int array1[10000000];
Run Code Online (Sandbox Code Playgroud)

int array1[1000000];  ( one less zero)
Run Code Online (Sandbox Code Playgroud)

该程序工作和打印4000000

我在Fedora 21(64位)上运行它

这是因为C中的数组有最大大小吗?先感谢您

c arrays

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

为什么我在C中声明堆栈中的大型数组会出现段错误?

我从这行代码中得到了一个段错误:

int fatblob[1820][286][5];
Run Code Online (Sandbox Code Playgroud)

这是为什么?

c stack

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

增加char数组的最大大小

我在C中编写了一些代码,将char数组的最大大小设为100.它运行良好.但是当我将char数组的最大大小增加到10000时,它会给我分段错误(因为它超出了它的限制).有人能告诉我如何增加最大大小并存储长度为10000的字符串.

即如何将"char a [100]"作为"char a [10000]"并执行相同的代码????

c arrays size max char

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