gpt4 book ai didi

c - 这个指针越界了吗?

转载 作者:太空狗 更新时间:2023-10-29 15:21:13 33 4
gpt4 key购买 nike

<分区>

作为练习,我创建了以下程序:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

#define MAX 100

int main(void)
{
char message[MAX];
char *p = message;
char *q = message;
char c = ' ';
printf("Enter a message: ");
while((c = toupper(getchar())) != '\n' && (p < message + MAX)) {
if(isalpha(c))
*p++ = c;
}

p--;
while(*p == *q) {
if((p == q) || (p == q - 1) || (p - 1 == q)) {
printf("Palindrome\n");
exit(0);
}
q++;
p--;
}

printf("Not a palindrome\n");
return 0;
}

这是一个问题/漏洞吗,在第一个 while 循环中,最后一次进入时,p 指向 消息之外[100]数组?

我在下面递减它,但我想知道让它以这种方式运行是否被认为是一种不好的做法。

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com