复制字符串后 ARM7 Raspberry pi 程序集分段错误

ARM7 Raspberry pi Assembly Segmentation fault after copying string

这是我的 ARM7 汇编代码片段

.global strCopy
.text
strCopy:

strCopyloop:    
    LDRB R2, [R1], #1
    STRB R2, [R0], #1

    CMP R2, #0
    BNE strCopyloop

    Bx LR

这是使用该函数的 C 文件

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

extern void strCopy(char* strTo, const char* strFrom);
int main(){

        const char* str1 ="This one";
        char* str2;


        strCopy(str2,str1);


        return 0;
}

我一辈子都弄不明白为什么会出现分段错误。

您需要为 str2

创建 space

这可以使用 malloc 函数来完成。

str2= char* malloc(strlen(str1)+1)

您在字符串末尾添加 1 表示空字符。这显示了字符串的结尾。您现在可以继续使用 strcpy 函数 Scipy 2 个字符串。