0

这是我的 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;
}

我一生都无法弄清楚为什么它给了我一个分段错误。

4

1 回答 1

-1

您需要为 str2 创建空间

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

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

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

于 2020-03-01T03:34:59.770 回答