gpt4 book ai didi

c - C 中的段错误(使用指针)

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:28 25 4
gpt4 key购买 nike

很明显,当我在自己的计算机上编译这个程序时,它似乎可以工作。但是,在另一个编译器上它给出了段错误。我在这里使用了指针,我可能用错了,但是,从逻辑上讲,一切都应该没有错误。如果有人能指出一些错误,将不胜感激。

contains.c

#include <string.h>

int contains(char *s, char *t)
{
if (!t)
return 0;

if (!*t)
return 0;

if (s)
{
char *k;
int n = 0;
int l = t;
int len = strlen(t);
int counter = 0;

printf("%d", len);

for(k=s; *k; k++)
{

printf("S: %c ", *k);
printf("T: %c ", *t);
if (*k == *t)
{
printf("Si: %c ", *k);
printf("Ti: %c ", *t);
t++;
counter++;
}
else
{
counter = 0;
t = l;
if (*k == *t)
{
t++;
counter++;
printf("Si: %c ", *k);
printf("Ti: %c ", *t);
}

}

printf("%d\n", len);
printf("%d", counter);
if (counter >= len)
{
n++;
t = l;
counter = 0;
if (*k == *t)
{
t++;
counter++;

printf("Si: %c ", *k);
printf("Ti: %c ", *t);
}
}
}

return n;
}
else
return 0;



}

main.c

#include <stdio.h>

int contains(char *s, char *t);

int main(void)
{
printf ("%d\n", contains ("I wanna shoot something!", "thing"));
printf ("%d\n", contains ("Let's get in range!", "ge"));
printf ("%d\n", contains ("Wanna see the fireworks?", "wanna"));
printf ("%d\n", contains ("Look at the pretty explosions!", " "));
printf ("%d\n", contains ("Kaboom!", ""));

printf ("%d\n", contains ((char *) 0, "aaa"));
printf ("%d\n", contains ("aaa", (char *) 0));
printf ("%d\n", contains ((char *) 0, (char *) 0));

return 0;
}

最佳答案

您将整数分配给指针,并将指针分配给整数。它至少是错误的:

int l = t;
...
t = l

关于c - C 中的段错误(使用指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19995716/

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