gpt4 book ai didi

c - 指针导致 C 中的错误消息

转载 作者:太空宇宙 更新时间:2023-11-04 06:51:59 26 4
gpt4 key购买 nike

#include <stdio.h>   

void Strcat(char* a, char* b);

int main(int argc, const char * argv[]) {
char c[] = "abcdefg";
char d[] = "hijklmn";
Strcat(c, d);
printf("%s\n",c);
}

void Strcat(char* a, char* b)
{
for(; *a!= '\0';a++);

for(; *b != '\0';a++,b++)
{
*a = *b;
}
}

该函数旨在复制 c 末尾的字符串 d。它有效,但编译器 (XCode) 给我一些反馈如下:

    0x7fff50716e34 <+0>:  movl   $0x2000148, %eax   ; imm = 0x2000148 
0x7fff50716e39 <+5>: movq %rcx, %r10
0x7fff50716e3c <+8>: syscall
-> 0x7fff50716e3e <+10>: jae 0x7fff50716e48. ; <+20> Thread 1: signal SIGABRT
0x7fff50716e40 <+12>: movq %rax, %rdi
0x7fff50716e43 <+15>: jmp 0x7fff5070e0b8 ; cerror_nocancel
0x7fff50716e48 <+20>: retq
0x7fff50716e49 <+21>: nop
0x7fff50716e4a <+22>: nop
0x7fff50716e4b <+23>: nop

错误信息看起来像是一种我很难理解的程序集。我是 C 语言的新手,有人可以告诉我这是什么意思吗?

最佳答案

数组 c 太小,无法存储其初始值和 d 的串联。你在你的数组之外写。

关于c - 指针导致 C 中的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955483/

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