目的是允许用户输入一个内存地址(十六进制)并打印出地址的内容。
该代码在摩托罗拉 68HC11 上运行。
到目前为止,我能够使用硬编码值读取内存地址:
void displayMemory(){
char *p = (char*)0x5000;
printf("Address Ascii: %s\n",p);
}
但是,我尝试了多种使用用户输入数据的方法,例如:
void displayMemory(char *arr){
char *p = arr;
printf("Address Ascii: %s\n",p);
}
^^ 其中 *arr 是输入的十六进制值。如:40a
我还尝试将十六进制值硬编码为 char 数组,例如:
void displayMemory(){
char *p = "0x5000";
printf("Address Ascii: %s\n",p);
}
这也不起作用,并给了我一个不同的内存地址。
任何想法将不胜感激,我可能非常愚蠢!
更新:如何调用函数
char *arr;
arr = malloc(size * sizeof(char));
if(arr){
strncat(arr, &userInput[3], size);
displayMemory(arr);
}else{
return 0;
}
userInput is : dm 40a size is: 在这种情况下 userInput 的数字部分的长度 3