小编120*_*arm的帖子

从数组元素返回一个双精度值到控制台

我有一些代码norms声明为大小为 3 x 2 的双数组。我想输出norms[0]到控制台。

#include <iostream> 
using namespace std;
    
double norms[3][2];
_cal_norm(dept,size,max_posn,norms[0]);
cout << norms[0];
Run Code Online (Sandbox Code Playgroud)

我想返回双倍值。我试过用cout << norms[0]它来退货。但它返回以下内容:

规范[0] 1 0x7fff33d52180

有没有办法让我看到双重价值?

c++ arrays

0
推荐指数
1
解决办法
64
查看次数

c 和汇编的指针算术

我想使用 Assembly 和 C 访问内存上的特定位置。

我创建了以下结构:

struct node{
    uint64_t x[5];
    uint64_t y;
    struct node * next;
};
Run Code Online (Sandbox Code Playgroud)

后来,我创建了一个该类型的对象。

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

struct node{
    uint64_t x[5];
    uint64_t y;
    struct node * next;
};

void foo();

struct node * ptr;

int main(){
    
    struct node* ptr = (struct node *) malloc(sizeof(struct node));
    ptr->next = NULL;

    foo();

    printf("%lu\n", ptr->y);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在,在 Assembly 上,我想更改 y 的值。

    .section .data
    
    .text
    .globl  foo
    .extern ptr

foo:

    //access ptr->y
    leaq (ptr + 40), …
Run Code Online (Sandbox Code Playgroud)

c x86 assembly pointers

0
推荐指数
1
解决办法
75
查看次数

该程序如何工作?

我找到了一个C程序来查找3x3矩阵的行列式,但我不知道它是如何工作的。

我对这部分感到困惑

for(i=0; i<3; i++) {
    k = k + a[0][i] * (a[1][(i+1)%3] * a[2][(i+2)%3] - a[1][(i+2)%3] * a[2][(i+1)%3]);
}    
Run Code Online (Sandbox Code Playgroud)

3x3矩阵的行列式公式

a b c  
d e f  
g h i  
Run Code Online (Sandbox Code Playgroud)

行列式= a(ei-fh)-b(di-fg)+ c(dh-eg)

此处的公式具有-b(负b),但是代码中使用的公式中没有负数,所以它如何工作?

#include<stdio.h>

int main()
{
    int a[10][10], i, j, k=0;

    printf("Enter values of matrix: \n\n");
    for(i=0; i<3; i++) {
        for(j=0; j<3; j++) {
            printf("Value of [%d][%d]: ", i, j);
            scanf(" %d", &a[i][j]);
        }
    }

    printf("Matrix is:\n\n");
    for(i=0; i<3; i++) {
        for(j=0; j<3; j++) {
            printf("%d  ", a[i][j]); …
Run Code Online (Sandbox Code Playgroud)

c

-2
推荐指数
1
解决办法
84
查看次数

跳回1000行

我试图制作一个代码,当你最后,它会问你是否想再试一次.如果按'y',它将在程序开头直接跳回1000行.

很明显,它没有成功,因为我得到错误"跳跃相对超出范围".所以我每50次跳跃,共有20次跳跃,比如说

start:
.
s20: jmp start
.
.
.
s2: jmp s3
.
s1: jmp s2
.
jmp s1
Run Code Online (Sandbox Code Playgroud)

在这之后,我运行了程序,当我按下"y"时,TASM有点冻结.它只是显示最后一个屏幕,带有'y'输入和一个闪烁的_.我再也不能按下一个角色了.

谢谢.

x86 assembly dos tasm x86-16

-3
推荐指数
1
解决办法
834
查看次数

C ++读取在Python中创建的二进制文件中的地图

我创建了一个 Python 脚本,它创建了以下地图(插图):

map<uint32_t, string> tempMap = {{2,"xx"}, {200, "yy"}};
Run Code Online (Sandbox Code Playgroud)

并将其保存为map.out文件(二进制文件)。当我尝试从 C++ 读取二进制文件时,它不会复制地图,为什么?

    map<uint32_t, string> tempMap;
    ifstream readFile;
    std::streamsize length;

    readFile.open("somePath\\map.out", ios::binary | ios::in);
    if (readFile)
    {
        readFile.ignore( std::numeric_limits<std::streamsize>::max() );
        length = readFile.gcount();
        readFile.clear();   //  Since ignore will have set eof.
        readFile.seekg( 0, std::ios_base::beg );
        readFile.read((char *)&tempMap,length);
        for(auto &it: tempMap)
        {
          /* cout<<("%u, %s",it.first, it.second.c_str()); ->Prints map*/
        }
    }
    readFile.close();
    readFile.clear();
Run Code Online (Sandbox Code Playgroud)

c++ python io file readfile

-3
推荐指数
1
解决办法
397
查看次数

标签 统计

assembly ×2

c ×2

c++ ×2

x86 ×2

arrays ×1

dos ×1

file ×1

io ×1

pointers ×1

python ×1

readfile ×1

tasm ×1

x86-16 ×1