gpt4 book ai didi

c - 对于像这样的指针函数,内存是如何分配的?

转载 作者:行者123 更新时间:2023-11-30 15:49:59 24 4
gpt4 key购买 nike

我是 C 编程初学者,刚刚开始学习指针的概念。有人可以解释为什么我的代码以段错误结束,而我认为我做得对吗?也许我缺乏一些内存分配概念,我希望这里有人可以详细解释它们,或者指出我可以在哪里找到像我这样的问题的解释。

char strs(char *s, char *k)
{
int flag=0;
do
{
if(*k=='\0') return (*(s-flag));
if(*s==*k)
{
k++;
flag++;
}
if(flag!=0 && *s!=*k)
{
k=k-flag;
}
s++;
} while(*s!='\0');
return('\0');
}

main()
{
char s[10],k[5];
printf("Please enter the main string: ");
scanf("%s",s);
printf("Please enter the key string: ");
scanf("%s",k);
if((strs(s,k))!='\0') printf("The pointer is at <<<%s>>> in %s",strs(s,k),s);
if((strs(s,k)=='\0')) printf("\nKey string not found, value of strs is %s", strs(s,k));
}

最佳答案

您的 strs 函数返回一个字符,但您尝试使用 %s 格式说明符输出它。要输出单个字符,请使用 %c:

printf("The pointer is at <<<%c>>> in %s",strs(s,k),s);

关于c - 对于像这样的指针函数,内存是如何分配的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005098/

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