小编que*_*ngs的帖子

取消引用寄存器gdb

所以我试图调试一些代码,我所拥有的只是可执行文件.我知道寄存器包含需要知道的地址.有没有办法可以打印出从该地址开始到给定长度的十六进制值?

我尝试过的事情:

x/s $ebp
p (char) ($ebp)
p (char) (*ebp >> 4 )
p (char)*(%ebp  4 )
p $($ebp)
p  $(%ebp + $0x1)
Run Code Online (Sandbox Code Playgroud)

普通指针算术不适用于寄存器吗?它说"历史是空的"是什么意思

c gdb pointers

7
推荐指数
1
解决办法
7196
查看次数

fprintf C多个空格

你好,我是C的新手并且有一些困惑 fprintf

我正在尝试创建一个数据表,我希望它看起来像这样:

Rectangle A                    Rectangle B 
SW corner   Height   Width     SW corner   Height   Width
Run Code Online (Sandbox Code Playgroud)

我的大部分困惑都来自白色空间,肯定有一种比添加空字符串更好的方法.

c printf

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

比较C中的Char*和Enum变量

所以我第一次尝试在C中使用Enumerated类型.所以我有一个枚举"变量?" 声明,我也有一个结构,其中包含一个Enumerated类型的变量(以及其他内容).最后我有一个静态数组,其中有一个元素包含每个枚举"类型?" 他们被宣布的顺序相同.我希望使用枚举类型作为数组的索引.

所以我的问题是我需要以某种方式将char*变量与枚举类型相关联.如果我知道Char*变量是枚举类型之一,是否有某种方法断言,而不必查看每个char来确定它是哪个特定枚举"选项"?

例:

enum example = {abc,def}
struct _strExample {
       enum example letters;
       ....
};
typedef struct  _strExample strEx;
static strEx Table[2] = {
      {abc,...}
      {def,...}
};
//Given char* "abc" , want either example.abc or 0 ( correct index of table) 
Run Code Online (Sandbox Code Playgroud)

所以给定char*"abc"(不需要是char*),是否有一种简单的方法可以获得正确的枚举"类型?"(abc或def)或表的正确索引?我知道我可以检查char*中的所有单个字符并手动确定哪个枚举"类型?" 它是,但我将使用一大堆枚举变量,这种事情正是我试图避免的.任何有关枚举类型和/或我的设计的帮助或建议都将非常受欢迎.

c enums

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

在C中使用指针进行转换

我是一个入门课程,我对使用指针进行投射感到好奇.

有什么区别:

*(uint32_t*)(p) 
(uint32_t)(*p)
Run Code Online (Sandbox Code Playgroud)

p 是一个指针.

c pointers casting

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

标签 统计

c ×4

pointers ×2

casting ×1

enums ×1

gdb ×1

printf ×1