函数来计算字符串长度;我认为这里的逻辑是正确的:
int strlength(char *s)
{
int count=0;
while(*s!='\0')
{
count++;
s++;
}
return count;
}
int main(void) {
char *s;
int length;
printf("enter your string ");
scanf("%s",s);
length = strlength(s);
printf("string length:%d",length);
return 0;
}我在这里正确地获取了字符串并将其赋值吗?有没有人能解释一下为什么我在这里遇到了分段错误?
发布于 2017-08-06 13:28:03
main()函数的第二行声明了一个指针。然而,该指针从未被初始化为指向该程序所拥有某些存储器块。
建议使用堆分配函数之一(malloc、calloc、realloc)来初始化该指针。
使用未初始化的指针是未定义的行为,并且(如您所见)会导致seg错误事件。
当调用scanf()函数族中的任何一个时,
https://stackoverflow.com/questions/45528793
复制相似问题