我正在做一个学校项目,当我编码它的时候,我得到了这个关于无效next大小的错误。我将在这里简短地介绍一下我的主代码中发生的事情。程序似乎一到最后的重新锁定就崩溃了当size=3谢谢你
#include <stdlib.h>
int main(){
char * arga[7];
arga[1]="2018-11-12";
arga[2]="2018-11-13";
arga[3]="EUR";
arga[4]="BRL";
arga[5]="JPY";
arga[6]="GBP";
int argc=7;
int i=4;
int size=2;
//int indexes = (sizeof(arga)/sizeof(arga[0]))+1;
char**moedas=malloc(size*sizeof(char*));
moedas[0]=arga[3];
while(i<argc){
moedas[i-3]=arga[i];
moedas=realloc(moedas,size*sizeof(char*));
size++;
i++;
}
}发布于 2019-02-11 06:43:59
您可以立即写出已分配的内存:
int size=0;
char**moedas=malloc(size*sizeof(char*));
moedas[0]=arga[3];因为索引0在malloc(0)之外
然后在while的第一个循环中,当我在行中为4时
moedas[i-3]=arga[i]因为索引1也在malloc(0)之外
将大小初始化为1后,第一个错误将消失(索引0合法),但索引为1的第二个错误不会消失
https://stackoverflow.com/questions/54621786
复制相似问题