int **arkadas;
int **komsu;
komsu = malloc( t*sizeof( int* ));
arkadas = malloc( t*sizeof( int* ));
for(i=0; i<t; i++)
{
x=0;
komsu[i] = malloc( t*sizeof(int) );
arkadas[i] = malloc( t*sizeof(int) );//temporary malloc
for(j=0; j<t; j++)
{
komsu[i][j]=fark(kelime[i],kelime[j]);
if(komsu[i][j]==1)
{
komsuSayisi++;
x++;
arkadas[i][x]=j;
}
}
if(i==2)
{
printf("1. value: %d\n",arkadas[2][2]);
}
arkadas[i][0]=x+1;//size here
if(i==2)
{
printf("2. value: %d\n",arkadas[2][2]);
}
arkadas[i] = (int *)realloc(arkadas[i],x+1);
if(i==2)
{
printf("3.value: %d\n",arkadas[2][2]);
}
}
输出是:
1. value: 150
2. value: 150
3. value: 13243564 (after realloc)
我想将矩阵转换为简单矩阵,丢失0
中komsu
的矩阵。仅在arkadas
1
个。但正如您所看到的,在realloc
值发生变化之后。只有一个和第二个数组保持不变。
答案 0 :(得分:3)
与malloc
一样,当您致电realloc
时,您应该将元素数乘以元素的大小(在这种情况下为sizeof(int)
。