我想填充一个字符串数组使用两个函数:第一,如果我有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)',那么'help'必须指向一个足够大的内存位置以保存正在读入的字符串。 –
您不需要在C中输入'malloc'的结果。 – dasblinkenlight