读书人

malloc对内存储器有限制么请帮忙修改

发布时间: 2013-01-17 10:28:54 作者: rapoo

malloc对内存有限制么,请帮忙修改一个程序
如下程序,分配了12288次就执行不了,机器的内存有几十G,这是怎么回事


#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define ARTICLE_S 12782
#define WORD_S 17547
int num_of_ulong(unsigned long i);
void error_and_die(const char *msg) {
perror(msg);
exit(EXIT_FAILURE);
}
//unsigned long v[WORD_S][ARTICLE_S];

int main(void){
unsigned long word,article;
unsigned long part,position;
unsigned long t;
unsigned long i,j,k;

unsigned long *v[ARTICLE_S];
for(i=0lu;i<WORD_S;i++){
v[i]=(unsigned long *)malloc(ARTICLE_S*sizeof(unsigned long));
printf("succ\n");
}
/**
* ......
}*/
for(i=0lu;i<WORD_S;i++){
free(v[i]);
}
} malloc 内存
[解决办法]


unsigned long *v[ARTICLE_S];
for(i=0lu;i<WORD_S;i++){//这有问题,数组长度为ARTICLE_S,你却用了WORD_S
v[i]=(unsigned long *)malloc(ARTICLE_S*sizeof(unsigned long));
printf("succ\n");
}

[解决办法]
引用:
引用:C/C++ code?12345 unsigned long *v[ARTICLE_S]; for(i=0lu;i<WORD_S;i++){//这有问题,数组长度为ARTICLE_S,你却用了WORD_S v[i]=(unsigned long *)malloc(ARTICLE_S*sizeof(u……

你仔细看他在说什么。他说的没错。
[解决办法]
引用:
引用:
引用:C/C++ code?12345 unsigned long *v[ARTICLE_S]; for(i=0lu;i<WORD_S;i++){//这有问题,数组长度为ARTICLE_S,你却用了WORD_S v[i]=(unsigned long *)malloc(ARTIC……

+1 显然数组越界了。楼主你release一下,看看还是不是12288次

读书人网 >C语言

热点推荐