Я пишу программу на C, где у меня есть два массива 2d, например arr1 & arr2. Мне нужно удалить определенную строку из arr1 и добавить ее в arr2. Поэтому я использовал realloc для динамического увеличения размера arr2 на 1 и скопировал содержимое этой строки arr1 в эту вновь созданную строку arr2.Уменьшение размера 2D-массива и удаление определенной строки из него
Но моя проблема в том, что я не могу уменьшить размер arr1 и удалить из него определенную строку, используя realloc
. Может ли кто-нибудь помочь мне с кодом C, который можно использовать для динамического уменьшения размера массива 2d (используя realloc
или что-то еще) и удалить из него определенную строку (используя индекс этой строки)?
Сначала я создал две матрицы, как этот
a_seq=(float **)malloc(count1*sizeof(float*));
for(i=0;i<count1;i++)
a_seq[i]=(float *)malloc(n*sizeof(float));
Затем я выполнил realloc
на 2-й матрице после увеличения его размера на 1 по
a_full=(float **)realloc(a_full,count2*sizeof(float *));
a_full[count2-1]=(float *)malloc(n*sizeof(float));
for(s=0;s<n;s++)
a_full[count2-1][s]=a_seq[p][s];
р является индексом строки для удаления из a_seq.Мой вопрос заключается в том, что я могу применить ту же концепцию realloc
, чтобы уменьшить размер матрицы a_seq и удалить указанную строку?
Можете ли вы опубликовать код, который у вас есть прямо сейчас? – charliehorse55