【发布时间】:2021-03-31 18:18:36
【问题描述】:
中途返回显示--进程返回-1073741819 (0xC0000005) 此代码也没有显示错误或警告。 只是想确切地知道为什么会这样?
#include<stdio.h>
void reverse(char*);
int main()
{
char str[200];
printf("Enter a string : ");
scanf("%s",&str);
reverse(str);
printf("Reversed string : %s",str);
}
void reverse(char *p)
{
char temp,*q;
*p=*q;
while(*p!='\0')
{
q++;
}
while(p<q)
{
temp=*p;
*p=*q;
*q=temp;
p++;
q--;
}
}
【问题讨论】:
-
char temp,*q; *p=*q;- 在这里您尝试取消引用q,但您尚未为其分配任何有效值。这会导致未定义的行为。您的代码中可能还有其他问题。 -
没有警告?甚至没有警告 C4700:使用了未初始化的局部变量 'q'?
-
令人惊讶的是,它没有给出任何警告或错误。