gpt4 book ai didi

c - 输出不符合预期

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:51:44 24 4
gpt4 key购买 nike

  // I have used all the header files 
// code for comparing the directory has matching .recon file
// if yes i am printing match found

int main ()
{
DIR *dp = NULL;
char *dir = "/home/sv5071184/sample";
struct dirent *entry;
struct stat statbuf;
char y[20];
y[19] = '\0';
dp = opendir (dir);
if(dir == NULL)
return -1;

while((entry = readdir(dp)) != NULL) {
lstat(entry->d_name,&statbuf);
if(S_ISDIR(statbuf.st_mode)) {
/* Found a directory, but ignore . and .. */
if(strcmp(".",entry->d_name) == 0 ||
strcmp("..",entry->d_name) == 0)
continue;
strncpy(y,"111111111",9);
strncpy ((char *)&y[9], ".", 1);
strncpy ((char *)&y[10], "000", 3);
strncpy ((char *)&y[13], ".recon", 6);
if(strcmp(entry->d_name ,y) == 0)
{
printf("match found\n");
}
else
{
printf(" match not found\n");

}
}
}
printf ( " The value of y is %s\n", y );
closedir(dp);
return 0;
}

我编译执行成功了。但 match not found 在打印 match found 之前打印了五次。请帮忙

最佳答案

这是错误的:

(void) memcpy (y, 0x00, sizeof(y));

这意味着您想要从地址 0 读取顶部复制 sizeof(y) 字节到 y,这当然会出现段错误。

你想要这个:

char y[20] = {0};

memset(y, 0x00, sizeof(y));

关于c - 输出不符合预期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32218407/

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