Я хотел бы заполнить массив строк, используя две функции: первая, если у меня есть n строк для выделения, будет выделять n пробелов памяти; второй будет выделять память для каждой строки чтениявыделение памяти массиву строки
Вот первая функция:
char** allocate(int n)
{
char** t;
t=(char**)malloc(n*sizeof(char*));
if(!t) exit(-1);
return t;
}
Вот второй один:
void fill(char*** t,int n)
{
int i;
char* help=" ";
for(i=0;i<n;i++)
{
printf("\n saisir la chaine n %d :",i+1);
scanf("%s",help);
*t[i]=(char*)malloc((strlen(help)+1)*sizeof(char));
strcpy(*t[i],help);
}
}
Я не забыл позвонить второй в main
например: fill(&t,n);
Проблема в том, что я получаю сообщение об ошибке после прочтения первой строки и завершения программы.
Это не будет работать 'char * help =" ";' – this
Чтобы развернуть это: когда вы вызываете 'scanf («% s », help)' then' help' должен указывать на ячейку памяти достаточно большой для хранения строки, которая читается. –
Вам не нужно отображать результаты 'malloc' в C. – dasblinkenlight