本人萌新一枚,今天写了一个字符串逆序的题目,然后有一个地方不是很了解,在主函数里面用malloc 申请了2个Byte的内存,按理说我指针 i 指向的空间只能储存2个字符,但是我试了好多次,输了很多位,编译器都不报错,而且能够正确输入倒序数。
有没有大牛能够解释一下呀,下面是我的程序:
主函数里的 i 应该都是 ptr,之前敲错了。。。。。。
最后还少一个Printf输出
然后我不会改函数,就在这里说明一下
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void revers (char *ptr)
{
int i;
char temp;
int length = strlen (ptr);
for (i = 0; i < length / 2; i++)
{
temp = * (ptr + i);
* (ptr + i) = * (ptr + length - 1 - i);
* (ptr + length - 1 - i) = temp;
}
}
int main()
{
char * i = (char *) malloc (2)
scanf("%s\n", i);
revers (ptr);
return 0;
}