复制字符串后 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 个字符串。
这是我的 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 个字符串。