为什么这样不能初始化

int main()
{
char *str;
int n,m,i;

scanf("%d,%d",&m,&n);
str=(char*)calloc(sizeof(char)*m);                                                                                                                                                                      

for ( i = 0; i < m; i++)
{
    scanf("%c",&str[i]);
}

}

你调用calloc调用方法错了,应该改成str = (char*)calloc(m,sizeof(char));,m放在前面表示m个大小为sizeof(char)的连续内存空间

m是int类型
str=(char*)calloc(sizeof(char)*m);
没法从看整形变为指针型