Здравствуйте помогите пожалуйста
Нужно добавить К столбцов в начало матрицы, добавлять оно добавляться но оно берет память левую, выходит за приделы массива, не могу переделать. Помогите пожалуйста.
#include <iostream>
#include <stdlib.h>
#include <conio.h>
main()
{
int n,i,j,el ;
printf («\n Enter the size of array: »);
scanf («%d»,&n);
int *masiv;
masiv=(int*)malloc(n*sizeof(int));
for( i=0;i<n;i++)
{
masiv=rand()%100;
printf (» %d», masiv );
}
printf («\n Kolichestvo elementov kotorie dobavit: »);
scanf («%d»,&el);
printf(«\n Chisla\n»);
for( i=n;i<(n+el);i++)
{
masiv=rand()%100;
printf (» %d », masiv );
}
printf(«\n Polychilos\n»);
for( i=0;i<n+el;i++)
{
printf (» %d », masiv );
}
free(masiv);
}
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
У тебя память выделена под n элементов. Значит впихнуть в эту память n+el элементов не получится в принципе. Нужен другой кусок памяти, побольше. Тут может помочь realloc:
После этого к массиву будет добавлено место под el элементов в конце. Чтобы вставить же элементы в начало, придётся сдвинуть все элементы на el элементов. То есть по всем i от n-1 и до нуля, надо сделать: masiv[i+el]=masiv.
извините не могу это в код преобразить не поможете
Спасибо большое разобралась )))